Xiang, L., Yin, Y., Zheng, Y., Ma, Y., Li, Y., Zhao, Z., Guo, J., Ai, Z., Niu, Y., Duan, K., et al. (2020). A developmental landscape of 3D-cultured human pre-gastrulation embryos. Nature 577, 537–542.
Load required packages.
library(tidyverse)
library(magrittr)
library(Matrix)
library(Seurat)
library(extrafont)
library(patchwork)
# library(tidylog)
Sys.time()
## [1] "2020-07-31 01:51:14 CDT"
source(
file = file.path(
SCRIPT_DIR,
"utilities.R"
)
)
Load SRA run info.
cell_metadata <- read_delim(
file = "../SraRunTable.txt",
delim = ","
)
## Parsed with column specification:
## cols(
## .default = col_character(),
## AvgSpotLen = col_double(),
## Bases = col_double(),
## Bytes = col_double(),
## ReleaseDate = col_datetime(format = "")
## )
## See spec(...) for full column specifications.
cell_metadata$Cell_type %>%
table()
## .
## CTBs EPI EVTs Hypoblast ICM PSA-EPI STBs
## 159 126 40 25 52 44 109
cell_metadata %>% head()
Prepare metadata for single cells.
embedding <- read_csv(
file = "embedding_ncomponents31_seed20200317.csv"
) %>%
left_join(
cell_metadata[, c("Run", "Age", "Cell_type", "Sample Name")],
by = c("cell" = "Run")
) %>%
rename(
developmental_stage = Age,
cell_type = Cell_type,
sample_name = `Sample Name`
) %>%
mutate(
louvain = factor(louvain),
#
developmental_stage = str_replace(
string = developmental_stage,
pattern = "embryo invitro day ",
replacement = "E"
),
developmental_stage = factor(
developmental_stage,
levels = stringr::str_sort(
x = unique(developmental_stage),
numeric = TRUE
)
),
cell_type = factor(
cell_type,
levels = c(
"ICM",
"EPI",
"PSA-EPI",
"Hypoblast",
"CTBs",
"STBs",
"EVTs"
)
)
)
## Parsed with column specification:
## cols(
## cell = col_character(),
## batch = col_character(),
## louvain = col_double(),
## x_tsne = col_double(),
## y_tsne = col_double(),
## x_umap = col_double(),
## y_umap = col_double(),
## x_fitsne = col_double(),
## y_fitsne = col_double(),
## x_phate = col_double(),
## y_phate = col_double(),
## `x_min_dist=0.1` = col_double(),
## `y_min_dist=0.1` = col_double(),
## x_multicoretsne = col_double(),
## y_multicoretsne = col_double()
## )
embedding %>% head()
reticulate::py_discover_config()
## python: /Users/jialei/.pyenv/shims/python
## libpython: /Users/jialei/.pyenv/versions/3.8.2/lib/libpython3.8.dylib
## pythonhome: /Users/jialei/.pyenv/versions/3.8.2:/Users/jialei/.pyenv/versions/3.8.2
## version: 3.8.2 (default, May 23 2020, 03:35:41) [Clang 11.0.3 (clang-1103.0.32.62)]
## numpy: /Users/jialei/.pyenv/versions/3.8.2/lib/python3.8/site-packages/numpy
## numpy_version: 1.19.0
##
## NOTE: Python version was forced by RETICULATE_PYTHON
np <- reticulate::import("numpy", convert = TRUE)
scipy.sparse <- reticulate::import(module = "scipy.sparse", convert = TRUE)
matrix_readcount_use <- scipy.sparse$load_npz("../matrix_readcount.npz")
matrix_readcount_use_features <- np$load("../matrix_readcount_features.npy")
matrix_readcount_use_barcodes <- np$load("../matrix_readcount_barcodes.npy")
colnames(matrix_readcount_use) <- matrix_readcount_use_barcodes
# rownames(matrix_readcount_use) <- matrix_readcount_use_features
rownames(matrix_readcount_use) <- paste(
gene_symbo_info$X1,
gene_symbo_info$X2,
sep = "_"
)
matrix_readcount_use <- matrix_readcount_use[, embedding$cell]
# calculate CPM
matrix_cpm_use <- calc_cpm(matrix_readcount_use)
stopifnot(
dim(matrix_readcount_use) == dim(matrix_cpm_use)
)
print(dim(matrix_readcount_use))
## [1] 33538 555
walk(list(embedding, matrix_readcount_use, matrix_cpm_use), function(x) {
print(object.size(x), units = "auto", standard = "SI")
})
## 193.6 kB
## 71.6 MB
## 71.6 MB
embedding %>%
mutate(
num_umis = colSums(matrix_readcount_use[, cell]),
num_genes = colSums(matrix_readcount_use[, cell] > 0)
) %>%
group_by(louvain) %>%
summarise(
num_cell = n(),
median_umis = median(num_umis),
median_genes = median(num_genes)
) %>%
xtable::xtable()
## `summarise()` ungrouping output (override with `.groups` argument)
# stargazer::stargazer()
p_embedding_cluster <- plot_embedding(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = embedding$louvain %>% as.factor(),
label = "Cluster",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = FALSE,
geom_point_size = 1,
sort_values = FALSE
)
p_embedding_cluster +
scale_color_manual(
values = gg_color_hue(n = length(unique(embedding$louvain)))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
# Embedding
plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_readcount_use[, embedding$cell] %>%
colSums(),
colorbar_position = c(0.86, 0.28),
label = "UMI distribution",
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = FALSE,
FUN = function(x) log10(x)
)
prepare_cluster_composition(
embedding = embedding,
x = louvain, group = developmental_stage
) %>%
select(-num_cells) %>%
pivot_wider(
names_from = developmental_stage,
values_from = percentage
) %>%
replace(is.na(.), 0) %>%
print(n = nrow(.))
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
## # A tibble: 8 x 9
## # Groups: louvain [8]
## louvain E6 E7 E8 E9 E10 E12 E13.5 E14
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 0.228 0.140 0.0789 0.0789 0.114 0.175 0.0263 0.158
## 2 1 0.0460 0.494 0.149 0.103 0.0460 0.103 0.0115 0.0460
## 3 2 0 0 0 0.0349 0.163 0.337 0.0814 0.384
## 4 3 0 0 0.208 0.181 0.375 0.125 0.0139 0.0972
## 5 4 0 0.0278 0.306 0.472 0.194 0 0 0
## 6 5 0 0 0 0 0.109 0.435 0.0652 0.391
## 7 6 0 0 0 0 0 0.0244 0 0.976
## 8 7 0.892 0.108 0 0 0 0 0 0
p_barplot_cluster_composition_developmental_stage <- prepare_cluster_composition(
embedding = embedding,
x = louvain, group = developmental_stage
) %>%
arrange(louvain) %>%
plot_barplot(x = louvain, y = percentage, z = developmental_stage) +
scale_fill_manual(
values = ggthemes::tableau_color_pal("Tableau 20")(
length(unique(embedding$developmental_stage))
)
)
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
embedding %<>%
mutate(
cell_type_full = as.character(cell_type),
cell_type_full = case_when(
cell_type_full == c("CTBs") ~ "Cytotrophoblasts",
cell_type_full == c("STBs") ~ "Syncytiotrophoblasts",
cell_type_full == c("EVTs") ~ "Extravillous cytotrophoblasts",
cell_type_full == c("PSA-EPI") ~ "Primitive streak anlage - epiblast",
cell_type_full == c("EPI") ~ "Epiblast",
cell_type_full == c("ICM") ~ "Inner cell mass",
TRUE ~ .data$cell_type_full
),
#
cell_type2 = as.character(cell_type),
cell_type2 =
case_when(
cell_type2 == c("CTBs") ~ "TE",
cell_type2 == c("STBs") ~ "TE",
cell_type2 == c("EVTs") ~ "TE",
cell_type2 == c("PSA-EPI") ~ "EPI",
cell_type2 == c("Hypoblast") ~ "HYP",
TRUE ~ .data$cell_type2
),
#
cell_type_full = factor(
cell_type_full,
levels = c(
"Inner cell mass",
"Epiblast",
"Primitive streak anlage - epiblast",
"Hypoblast",
"Cytotrophoblasts",
"Syncytiotrophoblasts",
"Extravillous cytotrophoblasts"
)
),
#
cell_type2 = factor(
cell_type2,
levels = c("ICM", "EPI", "HYP", "TE")
)
)
embedding %>%
dplyr::count(cell_type, cell_type_full, name = "num_cells") %>%
arrange(cell_type)
prepare_cluster_composition(
embedding = embedding,
x = louvain, group = cell_type
) %>%
select(-num_cells) %>%
pivot_wider(
names_from = cell_type,
values_from = percentage
) %>%
replace(is.na(.), 0) %>%
print(n = nrow(.))
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
## # A tibble: 8 x 8
## # Groups: louvain [8]
## louvain EPI ICM `PSA-EPI` Hypoblast CTBs EVTs STBs
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 1 0 0 0 0 0 0
## 2 1 0.0345 0.172 0.0230 0.287 0.483 0 0
## 3 2 0.0116 0 0.0116 0 0.512 0.465 0
## 4 3 0 0 0.0417 0 0.0556 0 0.903
## 5 4 0.0139 0.0139 0 0 0.958 0 0.0139
## 6 5 0.0217 0 0.0435 0 0 0 0.935
## 7 6 0.122 0 0.878 0 0 0 0
## 8 7 0.0270 0.973 0 0 0 0 0
p_barplot_cluster_composition_cell_type <- prepare_cluster_composition(
embedding = embedding,
x = louvain, group = cell_type
) %>%
arrange(louvain) %>%
plot_barplot(x = louvain, y = percentage, z = cell_type) +
scale_fill_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
length(unique(embedding$cell_type))
)
)
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
# combine plots
p_barplot_cluster_composition_developmental_stage +
p_barplot_cluster_composition_cell_type +
plot_annotation(theme = theme(plot.margin = margin())) +
plot_layout(guides = "collect")
prepare_cluster_composition(
embedding = embedding,
x = louvain, group = cell_type2
) %>%
select(-num_cells) %>%
pivot_wider(
names_from = cell_type2,
values_from = percentage
) %>%
replace(is.na(.), 0) %>%
print(n = nrow(.))
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
## # A tibble: 8 x 5
## # Groups: louvain [8]
## louvain EPI ICM HYP TE
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 0 1 0 0 0
## 2 1 0.0575 0.172 0.287 0.483
## 3 2 0.0233 0 0 0.977
## 4 3 0.0417 0 0 0.958
## 5 4 0.0139 0.0139 0 0.972
## 6 5 0.0652 0 0 0.935
## 7 6 1 0 0 0
## 8 7 0.0270 0.973 0 0
prepare_cluster_composition(
embedding = embedding,
x = louvain, group = cell_type2
) %>%
arrange(louvain) %>%
plot_barplot(x = louvain, y = percentage, z = cell_type2) +
scale_fill_manual(
values = as.character(yarrr::piratepal(palette = "google"))
)
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
FEATURES_SELECTED <- c(
"NANOG",
"POU5F1",
"PDGFRA",
"GATA6",
"GATA3",
"GATA2"
)
FEATURES_SELECTED <- rownames(matrix_readcount_use)[
gene_symbo_info$X2 %in% FEATURES_SELECTED
]
map(FEATURES_SELECTED, function(x) {
plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[x, embedding$cell],
colorbar_position = c(0.86, 0.28),
label = str_c("t-SNE; ", x),
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = TRUE,
FUN = NULL
)
}) %>%
purrr::reduce(`+`) +
plot_annotation(theme = theme(plot.margin = margin()))
FEATURES_SELECTED <- c(
"GAPDH",
"PPIA",
# "OCT4",
"POU5F1",
"NANOG",
"SOX2",
"PRDM14",
"DPPA3",
"GDF3",
"CDH1",
"CDH2",
"GATA6",
"PDGFRA",
"GATA4",
"SOX17",
"DUSP4",
"TFAP2C",
# "CK7",
"KRT7",
"GATA2",
"CDX2",
"TEAD4",
"EOMES",
"TCEAL4",
"CSH1",
"HLA-G",
"MMP2",
"TBXT"
)
FEATURES_SELECTED <- rownames(matrix_readcount_use)[
gene_symbo_info$X2 %in% FEATURES_SELECTED
]
length(FEATURES_SELECTED)
## [1] 26
matrix_heatmap <- calc_cpm(m = matrix_cpm_use)[FEATURES_SELECTED, ]
matrix_heatmap <- log10(matrix_heatmap + 1)
matrix_heatmap <- t(scale(t(matrix_heatmap)))
rownames(matrix_heatmap) <- str_remove(
string = rownames(matrix_heatmap),
pattern = "^E.+_"
)
(heatmap_limits <- quantile(matrix_heatmap, c(0.05, 0.95)))
## 5% 95%
## -1.243100 1.825677
matrix_heatmap[matrix_heatmap < heatmap_limits[1]] <- heatmap_limits[1]
matrix_heatmap[matrix_heatmap > heatmap_limits[2]] <- heatmap_limits[2]
ha_columns <- ComplexHeatmap::HeatmapAnnotation(
cell_type = ComplexHeatmap::anno_simple(
embedding[match(
x = colnames(matrix_heatmap),
table = embedding$cell
), "cell_type"],
# pch = anno_labels_cluster,
col = setNames(
object = ggthemes::tableau_color_pal("Tableau 10")(
length(unique(embedding$cell_type))
),
nm = sort(unique(embedding$cell_type))
),
which = "column",
pt_size = unit(2, "mm"),
pt_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 5
),
simple_anno_size = unit(3, "mm")
),
#
cell_type_merged = ComplexHeatmap::anno_simple(
embedding[match(
x = colnames(matrix_heatmap),
table = embedding$cell
), "cell_type2"],
# pch = anno_labels_cluster,
col = setNames(
object = as.character(yarrr::piratepal(palette = "google")),
nm = sort(unique(embedding$cell_type2))
),
which = "column",
pt_size = unit(2, "mm"),
pt_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 5
),
simple_anno_size = unit(3, "mm")
),
#
developmental_stage = ComplexHeatmap::anno_simple(
embedding[match(
x = colnames(matrix_heatmap),
table = embedding$cell
), "developmental_stage"],
# pch = anno_labels_lineage,
col = setNames(
object = ggthemes::tableau_color_pal("Tableau 20")(
length(unique(embedding$developmental_stage))
),
nm = levels(embedding$developmental_stage)
),
which = "column",
# pt_size = unit(2, "mm"),
pt_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 5
),
simple_anno_size = unit(3, "mm")
),
show_annotation_name = TRUE,
annotation_label = c(
"Cell type",
"Cell type, merged",
"Develpmental stage"
),
annotation_name_gp = grid::gpar(fontfamily = "Arial", fontsize = 6),
annotation_name_side = "left"
)
ht <- ComplexHeatmap::Heatmap(
matrix = matrix_heatmap,
col = wesanderson::wes_palette("Zissou1", 50, type = "continuous"),
# col = viridis::plasma(n = 10),
#
cluster_rows = TRUE,
cluster_columns = TRUE,
#
show_row_names = TRUE,
show_column_names = FALSE,
row_names_gp = grid::gpar(fontfamily = "Arial", fontsize = 6),
#
show_row_dend = TRUE,
show_column_dend = TRUE,
column_dend_side = c("bottom"),
#
show_heatmap_legend = TRUE,
top_annotation = ha_columns,
#
heatmap_legend_param = list(
title = "Z score",
title_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
),
legend_direction = "vertical",
labels_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
),
legend_height = unit(25, "mm"),
legend_width = unit(10, "mm")
)
)
lgd_cell_type <- ComplexHeatmap::Legend(
title = "Cell type",
labels = sort(unique(embedding$cell_type)),
legend_gp = grid::gpar(fill = ggthemes::tableau_color_pal("Tableau 10")(
length(unique(embedding$cell_type))
)),
labels_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
),
title_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
)
)
lgd_cell_type_merged <- ComplexHeatmap::Legend(
title = "Cell type, merged",
labels = sort(unique(embedding$cell_type2)),
legend_gp = grid::gpar(
fill = as.character(yarrr::piratepal(palette = "google"))
),
labels_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
),
title_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
)
)
lgd_developmental_stage <- ComplexHeatmap::Legend(
title = "Develpmental stage",
labels = levels(embedding$developmental_stage),
legend_gp = grid::gpar(fill = ggthemes::tableau_color_pal("Tableau 20")(
length(levels(embedding$developmental_stage))
)),
labels_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
),
title_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
)
)
if (FALSE) {
ComplexHeatmap::draw(
ht,
heatmap_legend_list = list(
lgd_cell_type,
lgd_cell_type_merged,
lgd_developmental_stage
)
)
}
pd <- ComplexHeatmap::packLegend(
lgd_cell_type,
lgd_cell_type_merged,
gap = unit(8, "mm"),
direction = "horizontal"
)
ComplexHeatmap::draw(
ht,
heatmap_legend_list = list(pd, lgd_developmental_stage)
)
p_embedding_cluster_cell_type <- plot_embedding(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = embedding$cell_type %>% factor(),
label = "t-SNE; Cell type",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
length(unique(embedding$cell_type))
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank()
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
p_embedding_cluster_cell_type2 <- plot_embedding(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = embedding$cell_type2 %>% factor(),
label = "t-SNE; Cell type, merged",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = as.character(yarrr::piratepal(palette = "google"))
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank()
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
p_embedding_cluster_developmental_stage <- plot_embedding(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = embedding$developmental_stage %>% factor(),
label = "t-SNE; Develpmental stage",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 20")(
length(unique(embedding$developmental_stage))
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank()
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
p_embedding_cluster2 <- plot_embedding(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = embedding$louvain %>% factor(),
label = "t-SNE; Cluster",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = gg_color_hue(n = length(unique(embedding$louvain)))
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank()
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
list(
p_embedding_cluster2,
p_embedding_cluster_cell_type,
p_embedding_cluster_cell_type2,
p_embedding_cluster_developmental_stage
) %>%
purrr::reduce(`+`) +
plot_annotation(theme = theme(plot.margin = margin())) +
plot_layout(guides = "collect")
# match sample ids
# https://www.ncbi.nlm.nih.gov/geo/browse/?view=samples&series=136447
sample_info <- read_csv(
file = "sample.csv"
)
## Parsed with column specification:
## cols(
## Accession = col_character(),
## Title = col_character(),
## `Sample Type` = col_character(),
## Taxonomy = col_character(),
## Channels = col_double(),
## Platform = col_character(),
## Series = col_character(),
## `Supplementary Types` = col_character(),
## `Supplementary Links` = col_character(),
## `SRA Accession` = col_character(),
## Contact = col_character(),
## `Release Date` = col_character()
## )
sample_info %>% head()
embedding %<>%
left_join(
sample_info[, c("Accession", "Title")],
by = c("sample_name" = "Accession")
) %>%
rename(sample_id = Title)
embedding %>% head()
# Table S8.1 Basic information of 555 single cells. The Embryo ID column listed the embryos to which the cells belong. The number after D is day post-fertilization; the remaining part is the serial number of embryos on the same days. The group column listed the major lineages of the cells as defined in Fig 2b.
table_s8_1 <- tibble::tribble(
~sample_id, ~day, ~embryo_id, ~group,
"D6A1S1", "D6", "D6A1", "ICM",
"D6A1S2", "D6", "D6A1", "EPI",
"D6A1S3", "D6", "D6A1", "ICM",
"D6A1S4", "D6", "D6A1", "ICM",
"D6A1B1", "D6", "D6A1", "ICM",
"D6A1B2", "D6", "D6A1", "ICM",
"D6A2S6", "D6", "D6A2", "ICM",
"D6A2S7", "D6", "D6A2", "ICM",
"D6A2S8", "D6", "D6A2", "ICM",
"D6A2B1", "D6", "D6A2", "ICM",
"D6A2B2", "D6", "D6A2", "EPI",
"D6A2B4", "D6", "D6A2", "ICM",
"D6A3S1", "D6", "D6A3", "ICM",
"D6A3S3", "D6", "D6A3", "PrE",
"D6A3S4", "D6", "D6A3", "EPI",
"D6A3S5", "D6", "D6A3", "ICM",
"D6A3B1", "D6", "D6A3", "ICM",
"D6A3B2", "D6", "D6A3", "ICM",
"D6A4S4", "D6", "D6A4", "ICM",
"D6A4S5", "D6", "D6A4", "ICM",
"D6A4S6", "D6", "D6A4", "ICM",
"D6A4S7", "D6", "D6A4", "ICM",
"D6A4B3", "D6", "D6A4", "ICM",
"D6A4B4", "D6", "D6A4", "ICM",
"D6A5S1", "D6", "D6A5", "ICM",
"D6A5S7", "D6", "D6A5", "ICM",
"D6A5S8", "D6", "D6A5", "EPI",
"D6A5B3", "D6", "D6A5", "ICM",
"D6A5B4", "D6", "D6A5", "ICM",
"D6N1B23", "D6", "D6N1", "ICM",
"D6N1B6", "D6", "D6N1", "ICM",
"D6N1S15", "D6", "D6N1", "EPI",
"D6N1S1", "D6", "D6N1", "EPI",
"D6N1S19", "D6", "D6N1", "ICM",
"D6N1S33", "D6", "D6N1", "EPI",
"D6N1S34", "D6", "D6N1", "EPI",
"D6N1S35", "D6", "D6N1", "ICM",
"D6N1S3", "D6", "D6N1", "EPI",
"D6N1S39", "D6", "D6N1", "PrE",
"D6N1S42", "D6", "D6N1", "EPI",
"D6N1S4", "D6", "D6N1", "EPI",
"D6N1S9", "D6", "D6N1", "EPI",
"D6N2B11", "D6", "D6N2", "ICM",
"D6N2B12", "D6", "D6N2", "ICM",
"D6N2B1", "D6", "D6N2", "EPI",
"D6N2B18", "D6", "D6N2", "EPI",
"D6N2B2", "D6", "D6N2", "EPI",
"D6N2B28", "D6", "D6N2", "ICM",
"D6N2B7", "D6", "D6N2", "ICM",
"D6N2B8", "D6", "D6N2", "EPI",
"D6N2S11", "D6", "D6N2", "EPI",
"D6N2S2", "D6", "D6N2", "EPI",
"D6N2S35", "D6", "D6N2", "EPI",
"D6N3B12", "D6", "D6N3", "EPI",
"D6N3B7", "D6", "D6N3", "EPI",
"D6N3S11", "D6", "D6N3", "EPI",
"D6N3S22", "D6", "D6N3", "EPI",
"D6N3S2", "D6", "D6N3", "EPI",
"D6N3S28", "D6", "D6N3", "EPI",
"D6N3S35", "D6", "D6N3", "EPI",
"D6N3S40", "D6", "D6N3", "EPI",
"D6N3S51", "D6", "D6N3", "EPI",
"D7A1B1", "D7", "D7A1", "ICM",
"D7A1B3", "D7", "D7A1", "ICM",
"D7A1B5", "D7", "D7A1", "CTB",
"D7A1B7", "D7", "D7A1", "ICM",
"D7A1B8", "D7", "D7A1", "ICM",
"D7A1S11", "D7", "D7A1", "CTB",
"D7A1S13", "D7", "D7A1", "EPI",
"D7A1S14", "D7", "D7A1", "ICM",
"D7A1S15", "D7", "D7A1", "ICM",
"D7A1S16", "D7", "D7A1", "EPI",
"D7A1S1", "D7", "D7A1", "ICM",
"D7A1S5", "D7", "D7A1", "ICM",
"D7A1S6", "D7", "D7A1", "ICM",
"D7A1S7", "D7", "D7A1", "CTB",
"D7A1S8", "D7", "D7A1", "PrE",
"D7A1S9", "D7", "D7A1", "CTB",
"D7A2B1", "D7", "D7A2", "ICM",
"D7A2B4", "D7", "D7A2", "ICM",
"D7A2B5", "D7", "D7A2", "ICM",
"D7A2B6", "D7", "D7A2", "CTB",
"D7A2B8", "D7", "D7A2", "CTB",
"D7A2S10", "D7", "D7A2", "CTB",
"D7A2S14", "D7", "D7A2", "ICM",
"D7A2S16", "D7", "D7A2", "CTB",
"D7A2S1", "D7", "D7A2", "ICM",
"D7A2S2", "D7", "D7A2", "ICM",
"D7A2S3", "D7", "D7A2", "ICM",
"D7A2S6", "D7", "D7A2", "CTB",
"D7A3B10", "D7", "D7A3", "CTB",
"D7A3B1", "D7", "D7A3", "CTB",
"D7A3B3", "D7", "D7A3", "CTB",
"D7A3B8", "D7", "D7A3", "EPI",
"D7A3S10", "D7", "D7A3", "CTB",
"D7A3S12", "D7", "D7A3", "CTB",
"D7A3S14", "D7", "D7A3", "CTB",
"D7A3S1", "D7", "D7A3", "CTB",
"D7A3S3", "D7", "D7A3", "CTB",
"D7A3S4", "D7", "D7A3", "CTB",
"D7A3S5", "D7", "D7A3", "CTB",
"D7A3S8", "D7", "D7A3", "EPI",
"D7A4B2", "D7", "D7A4", "PrE",
"D7A4B3", "D7", "D7A4", "CTB",
"D7A4B5", "D7", "D7A4", "CTB",
"D7A4B6", "D7", "D7A4", "CTB",
"D7A4B8", "D7", "D7A4", "CTB",
"D7A4S12", "D7", "D7A4", "PrE",
"D7A4S13", "D7", "D7A4", "CTB",
"D7A4S14", "D7", "D7A4", "CTB",
"D7A4S15", "D7", "D7A4", "CTB",
"D7A4S1", "D7", "D7A4", "CTB",
"D7A4S2", "D7", "D7A4", "PrE",
"D7A4S7", "D7", "D7A4", "PrE",
"D7N1B1", "D7", "D7N1", "EPI",
"D7N1S7", "D7", "D7N1", "EPI",
"D7N1S9", "D7", "D7N1", "EPI",
"D7N1B5", "D7", "D7N1", "ICM",
"D7N1B7", "D7", "D7N1", "EPI",
"D7N1B9", "D7", "D7N1", "EPI",
"D7N1S15", "D7", "D7N1", "EPI",
"D7N1S18", "D7", "D7N1", "ICM",
"D7N1S19", "D7", "D7N1", "EPI",
"D7N1S21", "D7", "D7N1", "EPI",
"D7N1S24", "D7", "D7N1", "EPI",
"D7N1S27", "D7", "D7N1", "EPI",
"D7N1S30", "D7", "D7N1", "EPI",
"D8_8B1", "D8", "D8_8", "EPI",
"D8_8B2", "D8", "D8_8", "CTB",
"D8_8B3", "D8", "D8_8", "PrE",
"D8_8B4", "D8", "D8_8", "CTB",
"D8_8S1", "D8", "D8_8", "CTB",
"D8_8S2", "D8", "D8_8", "EPI",
"D8_8S3", "D8", "D8_8", "CTB",
"D8_8S4", "D8", "D8_8", "CTB",
"D8_8S5", "D8", "D8_8", "CTB",
"D8_8S6", "D8", "D8_8", "CTB",
"D8_8S7", "D8", "D8_8", "CTB",
"D8_8S8", "D8", "D8_8", "CTB",
"D8A1B10", "D8", "D8A1", "STB",
"D8A1B2", "D8", "D8A1", "CTB",
"D8A1B3", "D8", "D8A1", "CTB",
"D8A1B4", "D8", "D8A1", "STB",
"D8A1B6", "D8", "D8A1", "CTB",
"D8A1S11", "D8", "D8A1", "EPI",
"D8A1S1", "D8", "D8A1", "CTB",
"D8A1S24", "D8", "D8A1", "EPI",
"D8A1S31", "D8", "D8A1", "EPI",
"D8A1S3", "D8", "D8A1", "CTB",
"D8A1S7", "D8", "D8A1", "CTB",
"D8A1S8", "D8", "D8A1", "EPI",
"D8A2B1", "D8", "D8A2", "STB",
"D8A2B2", "D8", "D8A2", "CTB",
"D8A2B5", "D8", "D8A2", "STB",
"D8A2S10", "D8", "D8A2", "EPI",
"D8A2S12", "D8", "D8A2", "CTB",
"D8A2S15", "D8", "D8A2", "EPI",
"D8A2S1", "D8", "D8A2", "STB",
"D8A2S24", "D8", "D8A2", "CTB",
"D8A2S29", "D8", "D8A2", "EPI",
"D8A2S2", "D8", "D8A2", "EPI",
"D8A2S3", "D8", "D8A2", "CTB",
"D8A2S4", "D8", "D8A2", "CTB",
"D8A3B10", "D8", "D8A3", "STB",
"D8A3B11", "D8", "D8A3", "PrE",
"D8A3B1", "D8", "D8A3", "STB",
"D8A3B4", "D8", "D8A3", "STB",
"D8A3S12", "D8", "D8A3", "CTB",
"D8A3S13", "D8", "D8A3", "STB",
"D8A3S1", "D8", "D8A3", "STB",
"D8A3S28", "D8", "D8A3", "STB",
"D8A3S2", "D8", "D8A3", "CTB",
"D8A3S5", "D8", "D8A3", "STB",
"D8A3S7", "D8", "D8A3", "CTB",
"D8A3S8", "D8", "D8A3", "STB",
"D8A5B7", "D8", "D8A5", "CTB",
"D8A5B8", "D8", "D8A5", "CTB",
"D8A5S14", "D8", "D8A5", "CTB",
"D8A5S1", "D8", "D8A5", "CTB",
"D8A5S4", "D8", "D8A5", "CTB",
"D8A6B1", "D8", "D8A6", "CTB",
"D8A6B3", "D8", "D8A6", "CTB",
"D8A6B6", "D8", "D8A6", "CTB",
"D8A6S15", "D8", "D8A6", "CTB",
"D8A6S5", "D8", "D8A6", "CTB",
"D8A6S7", "D8", "D8A6", "EPI",
"D9A1B1", "D9", "D9A1", "CTB",
"D9A1B15", "D9", "D9A1", "STB",
"D9A1B16", "D9", "D9A1", "CTB",
"D9A1B2", "D9", "D9A1", "STB",
"D9A1B3", "D9", "D9A1", "CTB",
"D9A1B4", "D9", "D9A1", "STB",
"D9A1S1", "D9", "D9A1", "STB",
"D9A1S10", "D9", "D9A1", "EPI",
"D9A1S2", "D9", "D9A1", "CTB",
"D9A1S23", "D9", "D9A1", "CTB",
"D9A1S26", "D9", "D9A1", "CTB",
"D9A1S28", "D9", "D9A1", "EPI",
"D9A1S3", "D9", "D9A1", "CTB",
"D9A1S7", "D9", "D9A1", "CTB",
"D9A1S8", "D9", "D9A1", "CTB",
"D9A2B1", "D9", "D9A2", "STB",
"D9A2B2", "D9", "D9A2", "STB",
"D9A2B3", "D9", "D9A2", "CTB",
"D9A2B5", "D9", "D9A2", "CTB",
"D9A2B8", "D9", "D9A2", "CTB",
"D9A2S1", "D9", "D9A2", "CTB",
"D9A2S2", "D9", "D9A2", "CTB",
"D9A2S3", "D9", "D9A2", "CTB",
"D9A2S4", "D9", "D9A2", "CTB",
"D9A2S6", "D9", "D9A2", "PrE",
"D9A3B1", "D9", "D9A3", "CTB",
"D9A3B2", "D9", "D9A3", "STB",
"D9A3B3", "D9", "D9A3", "STB",
"D9A3B4", "D9", "D9A3", "STB",
"D9A3B7", "D9", "D9A3", "CTB",
"D9A3S1", "D9", "D9A3", "CTB",
"D9A3S11", "D9", "D9A3", "STB",
"D9A3S14", "D9", "D9A3", "EPI",
"D9A3S15", "D9", "D9A3", "STB",
"D9A3S2", "D9", "D9A3", "CTB",
"D9A3S3", "D9", "D9A3", "CTB",
"D9A4B2", "D9", "D9A4", "CTB",
"D9A4B4", "D9", "D9A4", "CTB",
"D9A4B7", "D9", "D9A4", "CTB",
"D9A4B8", "D9", "D9A4", "CTB",
"D9A4S1", "D9", "D9A4", "EPI",
"D9A4S10", "D9", "D9A4", "CTB",
"D9A4S11", "D9", "D9A4", "CTB",
"D9A4S6", "D9", "D9A4", "CTB",
"D9A4S7", "D9", "D9A4", "CTB",
"D9A4S9", "D9", "D9A4", "CTB",
"D9A5B5", "D9", "D9A5", "CTB",
"D9A5S12", "D9", "D9A5", "EPI",
"D9A5S3", "D9", "D9A5", "CTB",
"D9A5S6", "D9", "D9A5", "STB",
"D9A5S8", "D9", "D9A5", "CTB",
"D9A5S9", "D9", "D9A5", "EPI",
"D9A6B1", "D9", "D9A6", "STB",
"D9A6B6", "D9", "D9A6", "CTB",
"D9A6B8", "D9", "D9A6", "CTB",
"D9A6S10", "D9", "D9A6", "CTB",
"D9A6S14", "D9", "D9A6", "CTB",
"D9A6S15", "D9", "D9A6", "CTB",
"D9A6S5", "D9", "D9A6", "CTB",
"D9A6S9", "D9", "D9A6", "PrE",
"D9A4B1", "D9", "D9A4", "PrE",
"D9A4S14", "D9", "D9A4", "ICM",
"D9A4S16", "D9", "D9A4", "EPI",
"D9A4S3", "D9", "D9A4", "EPI",
"D9A4S4", "D9", "D9A4", "ICM",
"D9A4S5", "D9", "D9A4", "EPI",
"D9A5S10", "D9", "D9A5", "CTB",
"D9A5S11", "D9", "D9A5", "EPI",
"D10A4S4", "D10", "D10A4", "STB",
"D10A1B11", "D10", "D10A1", "STB",
"D10A1B17", "D10", "D10A1", "CTB",
"D10A1B1", "D10", "D10A1", "STB",
"D10A1B2", "D10", "D10A1", "STB",
"D10A1B3", "D10", "D10A1", "STB",
"D10A1B4", "D10", "D10A1", "STB",
"D10A1B5", "D10", "D10A1", "STB",
"D10A1B7", "D10", "D10A1", "STB",
"D10A1B8", "D10", "D10A1", "STB",
"D10A1S10", "D10", "D10A1", "CTB",
"D10A1S11", "D10", "D10A1", "CTB",
"D10A1S12", "D10", "D10A1", "CTB",
"D10A1S13", "D10", "D10A1", "STB",
"D10A1S1", "D10", "D10A1", "CTB",
"D10A1S21", "D10", "D10A1", "EPI",
"D10A1S23", "D10", "D10A1", "EPI",
"D10A1S2", "D10", "D10A1", "STB",
"D10A1S31", "D10", "D10A1", "EPI",
"D10A1S32", "D10", "D10A1", "EPI",
"D10A1S34", "D10", "D10A1", "EPI",
"D10A1S3", "D10", "D10A1", "CTB",
"D10A1S40", "D10", "D10A1", "EPI",
"D10A1S4", "D10", "D10A1", "STB",
"D10A1S6", "D10", "D10A1", "EPI",
"D10A1S7", "D10", "D10A1", "CTB",
"D10A1S9", "D10", "D10A1", "CTB",
"D10A2B1", "D10", "D10A2", "STB",
"D10A2B2", "D10", "D10A2", "CTB",
"D10A2B3", "D10", "D10A2", "STB",
"D10A2B4", "D10", "D10A2", "STB",
"D10A2B6", "D10", "D10A2", "STB",
"D10A2S17", "D10", "D10A2", "EPI",
"D10A2S1", "D10", "D10A2", "CTB",
"D10A2S21", "D10", "D10A2", "CTB",
"D10A2S24", "D10", "D10A2", "PrE",
"D10A2S2", "D10", "D10A2", "STB",
"D10A2S32", "D10", "D10A2", "EPI",
"D10A2S3", "D10", "D10A2", "EPI",
"D10A3B17", "D10", "D10A3", "CTB",
"D10A3B2", "D10", "D10A3", "CTB",
"D10A3B3", "D10", "D10A3", "STB",
"D10A3B4", "D10", "D10A3", "CTB",
"D10A3B5", "D10", "D10A3", "CTB",
"D10A3B6", "D10", "D10A3", "STB",
"D10A3B7", "D10", "D10A3", "CTB",
"D10A3B8", "D10", "D10A3", "STB",
"D10A3B9", "D10", "D10A3", "CTB",
"D10A3S10", "D10", "D10A3", "STB",
"D10A3S18", "D10", "D10A3", "STB",
"D10A3S1", "D10", "D10A3", "CTB",
"D10A3S2", "D10", "D10A3", "CTB",
"D10A3S35", "D10", "D10A3", "CTB",
"D10A3S7", "D10", "D10A3", "CTB",
"D10A3S9", "D10", "D10A3", "CTB",
"D10A4B3", "D10", "D10A4", "CTB",
"D10A4B7", "D10", "D10A4", "STB",
"D10A4B8", "D10", "D10A4", "STB",
"D10A4S11", "D10", "D10A4", "STB",
"D10A4S14", "D10", "D10A4", "CTB",
"D10A4S16", "D10", "D10A4", "CTB",
"D10A4S7", "D10", "D10A4", "CTB",
"D10A4S8", "D10", "D10A4", "STB",
"D10A4S9", "D10", "D10A4", "CTB",
"D10A5B1", "D10", "D10A5", "STB",
"D10A5B3", "D10", "D10A5", "STB",
"D10A5B8", "D10", "D10A5", "STB",
"D10A5S12", "D10", "D10A5", "CTB",
"D10A5S16", "D10", "D10A5", "STB",
"D10A5S3", "D10", "D10A5", "CTB",
"D10A6S10", "D10", "D10A6", "CTB",
"D10A6S14", "D10", "D10A6", "PrE",
"D10A6S1", "D10", "D10A6", "PrE",
"D10A6S4", "D10", "D10A6", "EPI",
"D10A6S5", "D10", "D10A6", "EPI",
"D10A6S7", "D10", "D10A6", "EPI",
"D10A6S8", "D10", "D10A6", "EPI",
"D12A3B10", "D12", "D12A3", "STB",
"D12A3B11", "D12", "D12A3", "STB",
"D12A3B12", "D12", "D12A3", "STB",
"D12A3B13", "D12", "D12A3", "STB",
"D12A3B14", "D12", "D12A3", "EPI",
"D12A3B15", "D12", "D12A3", "STB",
"D12A3B16", "D12", "D12A3", "STB",
"D12A3B1", "D12", "D12A3", "PrE",
"D12A3B2", "D12", "D12A3", "STB",
"D12A3B3", "D12", "D12A3", "STB",
"D12A3B4", "D12", "D12A3", "CTB",
"D12A3B5", "D12", "D12A3", "STB",
"D12A3B6", "D12", "D12A3", "STB",
"D12A3B7", "D12", "D12A3", "STB",
"D12A3B8", "D12", "D12A3", "STB",
"D12A3B9", "D12", "D12A3", "STB",
"D12A3S10", "D12", "D12A3", "EPI",
"D12A3S11", "D12", "D12A3", "CTB",
"D12A3S12", "D12", "D12A3", "CTB",
"D12A3S13", "D12", "D12A3", "EPI",
"D12A3S14", "D12", "D12A3", "STB",
"D12A3S15", "D12", "D12A3", "EPI",
"D12A3S16", "D12", "D12A3", "EPI",
"D12A3S17", "D12", "D12A3", "CTB",
"D12A3S18", "D12", "D12A3", "CTB",
"D12A3S19", "D12", "D12A3", "CTB",
"D12A3S1", "D12", "D12A3", "STB",
"D12A3S20", "D12", "D12A3", "CTB",
"D12A3S21", "D12", "D12A3", "CTB",
"D12A3S22", "D12", "D12A3", "STB",
"D12A3S23", "D12", "D12A3", "EPI",
"D12A3S24", "D12", "D12A3", "EPI",
"D12A3S25", "D12", "D12A3", "CTB",
"D12A3S26", "D12", "D12A3", "EPI",
"D12A3S27", "D12", "D12A3", "EPI",
"D12A3S28", "D12", "D12A3", "CTB",
"D12A3S29", "D12", "D12A3", "STB",
"D12A3S2", "D12", "D12A3", "EPI",
"D12A3S30", "D12", "D12A3", "STB",
"D12A3S31", "D12", "D12A3", "CTB",
"D12A3S32", "D12", "D12A3", "EPI",
"D12A3S3", "D12", "D12A3", "EPI",
"D12A3S4", "D12", "D12A3", "CTB",
"D12A3S5", "D12", "D12A3", "CTB",
"D12A3S6", "D12", "D12A3", "CTB",
"D12A3S7", "D12", "D12A3", "STB",
"D12A3S8", "D12", "D12A3", "CTB",
"D12A3S9", "D12", "D12A3", "CTB",
"D12A4B15", "D12", "D12A4", "STB",
"D12A4B16", "D12", "D12A4", "STB",
"D12A4B5", "D12", "D12A4", "STB",
"D12A4B8", "D12", "D12A4", "STB",
"D12A4B9", "D12", "D12A4", "STB",
"D12A4S12", "D12", "D12A4", "CTB",
"D12A4S16", "D12", "D12A4", "CTB",
"D12A4S17", "D12", "D12A4", "CTB",
"D12A4S21", "D12", "D12A4", "STB",
"D12A4S22", "D12", "D12A4", "EPI",
"D12A4S26", "D12", "D12A4", "EPI",
"D12A4S29", "D12", "D12A4", "EPI",
"D12A4S2", "D12", "D12A4", "CTB",
"D12A4S30", "D12", "D12A4", "EPI",
"D12A4S7", "D12", "D12A4", "EPI",
"D12A4S9", "D12", "D12A4", "CTB",
"D12A5B11", "D12", "D12A5", "PrE",
"D12A5B15", "D12", "D12A5", "STB",
"D12A5B5", "D12", "D12A5", "EVT",
"D12A5B6", "D12", "D12A5", "CTB",
"D12A5B9", "D12", "D12A5", "STB",
"D12A5S13", "D12", "D12A5", "CTB",
"D12A5S16", "D12", "D12A5", "EPI",
"D12A5S17", "D12", "D12A5", "PrE",
"D12A5S18", "D12", "D12A5", "CTB",
"D12A5S19", "D12", "D12A5", "EPI",
"D12A5S1", "D12", "D12A5", "PrE",
"D12A5S20", "D12", "D12A5", "PrE",
"D12A5S24", "D12", "D12A5", "PrE",
"D12A5S25", "D12", "D12A5", "PrE",
"D12A5S30", "D12", "D12A5", "PrE",
"D12A5S4", "D12", "D12A5", "PrE",
"D12A5S5", "D12", "D12A5", "EPI",
"D12A5S6", "D12", "D12A5", "EPI",
"D12_1B3", "D12", "D12_1", "EVT",
"D12_1B4", "D12", "D12_1", "STB",
"D12_2B2", "D12", "D12_2", "EVT",
"D12_2B9", "D12", "D12_2", "EVT",
"D12_2S1", "D12", "D12_2", "STB",
"D12A4S27", "D12", "D12A4", "EPI",
"D14_1B1", "D14", "D14_1", "EVT",
"D14_1B2", "D14", "D14_1", "STB",
"D14_1B5", "D14", "D14_1", "EVT",
"D14_1S10", "D14", "D14_1", "STB",
"D14_1S2", "D14", "D14_1", "EVT",
"D14_2S1", "D14", "D14_2", "EVT",
"D14_3B5", "D14", "D14_3", "EVT",
"D14_3B6", "D14", "D14_3", "EVT",
"D14_3S10", "D14", "D14_3", "EPI",
"D14_3S15", "D14", "D14_3", "EPI",
"D14_3S16", "D14", "D14_3", "EPI",
"D14_3S9", "D14", "D14_3", "CTB",
"D14_2S2", "D14", "D14_2", "STB",
"D14_2B1", "D14", "D14_2", "EVT",
"D14_2B3", "D14", "D14_2", "EVT",
"D14A1B10", "D14", "D14A1", "STB",
"D14A1B11", "D14", "D14A1", "PSA-EPI",
"D14A1B12", "D14", "D14A1", "STB",
"D14A1B13", "D14", "D14A1", "PSA-EPI",
"D14A1B14", "D14", "D14A1", "PSA-EPI",
"D14A1B15", "D14", "D14A1", "PSA-EPI",
"D14A1B16", "D14", "D14A1", "PSA-EPI",
"D14A1B17", "D14", "D14A1", "EVT",
"D14A1B18", "D14", "D14A1", "STB",
"D14A1B19", "D14", "D14A1", "EVT",
"D14A1B1", "D14", "D14A1", "PSA-EPI",
"D14A1B20", "D14", "D14A1", "STB",
"D14A1B21", "D14", "D14A1", "PrE",
"D14A1B22", "D14", "D14A1", "STB",
"D14A1B23", "D14", "D14A1", "STB",
"D14A1B24", "D14", "D14A1", "STB",
"D14A1B25", "D14", "D14A1", "STB",
"D14A1B26", "D14", "D14A1", "STB",
"D14A1B27", "D14", "D14A1", "EPI",
"D14A1B28", "D14", "D14A1", "EPI",
"D14A1B2", "D14", "D14A1", "PSA-EPI",
"D14A1B3", "D14", "D14A1", "PSA-EPI",
"D14A1B4", "D14", "D14A1", "PSA-EPI",
"D14A1B5", "D14", "D14A1", "PSA-EPI",
"D14A1B6", "D14", "D14A1", "PSA-EPI",
"D14A1B7", "D14", "D14A1", "PSA-EPI",
"D14A1B8", "D14", "D14A1", "PSA-EPI",
"D14A1B9", "D14", "D14A1", "PSA-EPI",
"D14A1S10", "D14", "D14A1", "PSA-EPI",
"D14A1S11", "D14", "D14A1", "PSA-EPI",
"D14A1S12", "D14", "D14A1", "PSA-EPI",
"D14A1S13", "D14", "D14A1", "PSA-EPI",
"D14A1S14", "D14", "D14A1", "PSA-EPI",
"D14A1S15", "D14", "D14A1", "PSA-EPI",
"D14A1S16", "D14", "D14A1", "PSA-EPI",
"D14A1S17", "D14", "D14A1", "PSA-EPI",
"D14A1S18", "D14", "D14A1", "PSA-EPI",
"D14A1S19", "D14", "D14A1", "PSA-EPI",
"D14A1S1", "D14", "D14A1", "PSA-EPI",
"D14A1S20", "D14", "D14A1", "EPI",
"D14A1S21", "D14", "D14A1", "PSA-EPI",
"D14A1S22", "D14", "D14A1", "PSA-EPI",
"D14A1S23", "D14", "D14A1", "PSA-EPI",
"D14A1S24", "D14", "D14A1", "PSA-EPI",
"D14A1S25", "D14", "D14A1", "PSA-EPI",
"D14A1S26", "D14", "D14A1", "PSA-EPI",
"D14A1S27", "D14", "D14A1", "PSA-EPI",
"D14A1S28", "D14", "D14A1", "PSA-EPI",
"D14A1S29", "D14", "D14A1", "PSA-EPI",
"D14A1S2", "D14", "D14A1", "PSA-EPI",
"D14A1S30", "D14", "D14A1", "PSA-EPI",
"D14A1S31", "D14", "D14A1", "PSA-EPI",
"D14A1S32", "D14", "D14A1", "PSA-EPI",
"D14A1S33", "D14", "D14A1", "EPI",
"D14A1S34", "D14", "D14A1", "STB",
"D14A1S36", "D14", "D14A1", "STB",
"D14A1S39", "D14", "D14A1", "EPI",
"D14A1S3", "D14", "D14A1", "PSA-EPI",
"D14A1S41", "D14", "D14A1", "EPI",
"D14A1S42", "D14", "D14A1", "EPI",
"D14A1S43", "D14", "D14A1", "EPI",
"D14A1S44", "D14", "D14A1", "STB",
"D14A1S45", "D14", "D14A1", "EPI",
"D14A1S46", "D14", "D14A1", "EPI",
"D14A1S47", "D14", "D14A1", "EPI",
"D14A1S48", "D14", "D14A1", "EPI",
"D14A1S51", "D14", "D14A1", "EPI",
"D14A1S53", "D14", "D14A1", "STB",
"D14A1S56", "D14", "D14A1", "EPI",
"D14A1S57", "D14", "D14A1", "EPI",
"D14A1S58", "D14", "D14A1", "EPI",
"D14A1S59", "D14", "D14A1", "EPI",
"D14A1S5", "D14", "D14A1", "PSA-EPI",
"D14A1S60", "D14", "D14A1", "EPI",
"D14A1S61", "D14", "D14A1", "EPI",
"D14A1S62", "D14", "D14A1", "EPI",
"D14A1S63", "D14", "D14A1", "STB",
"D14A1S64", "D14", "D14A1", "EPI",
"D14A1S6", "D14", "D14A1", "PSA-EPI",
"D14A1S7", "D14", "D14A1", "PSA-EPI",
"D14A1S8", "D14", "D14A1", "PSA-EPI",
"D14A1S9", "D14", "D14A1", "PSA-EPI",
"D14A2B12", "D14", "D14A2", "EVT",
"D14A2B13", "D14", "D14A2", "EVT",
"D14A2B16", "D14", "D14A2", "STB",
"D14A2B1", "D14", "D14A2", "EVT",
"D14A2B2", "D14", "D14A2", "EVT",
"D14A2B4", "D14", "D14A2", "STB",
"D14A2B7", "D14", "D14A2", "STB",
"D14A2B9", "D14", "D14A2", "EVT",
"D14A2S13", "D14", "D14A2", "EVT",
"D14A2S15", "D14", "D14A2", "CTB",
"D14A2S17", "D14", "D14A2", "EVT",
"D14A2S19", "D14", "D14A2", "STB",
"D14A2S1", "D14", "D14A2", "EVT",
"D14A2S21", "D14", "D14A2", "EVT",
"D14A2S23", "D14", "D14A2", "EVT",
"D14A2S27", "D14", "D14A2", "EVT",
"D14A2S28", "D14", "D14A2", "EVT",
"D14A2S29", "D14", "D14A2", "STB",
"D14A2S5", "D14", "D14A2", "EVT",
"D14A2S6", "D14", "D14A2", "EVT",
"D14A3B10", "D14", "D14A3", "EVT",
"D14A3B12", "D14", "D14A3", "EVT",
"D14A3B14", "D14", "D14A3", "STB",
"D14A3B2", "D14", "D14A3", "EVT",
"D14A3B7", "D14", "D14A3", "EVT",
"D14A3S14", "D14", "D14A3", "EVT",
"D14A3S18", "D14", "D14A3", "STB",
"D14A3S19", "D14", "D14A3", "EVT",
"D14A3S20", "D14", "D14A3", "EPI",
"D14A3S23", "D14", "D14A3", "EVT",
"D14A3S25", "D14", "D14A3", "CTB",
"D14A3S26", "D14", "D14A3", "EVT",
"D14A3S27", "D14", "D14A3", "CTB",
"D14A3S28", "D14", "D14A3", "EVT",
"D14A3S29", "D14", "D14A3", "EPI",
"D14A3S30", "D14", "D14A3", "EVT",
"D14A3S5", "D14", "D14A3", "CTB",
"D14A3S7", "D14", "D14A3", "EVT",
"D14A3S8", "D14", "D14A3", "EVT"
)
Add embryo ids.
embedding %<>%
mutate(
sample_id = str_remove(
string = sample_id,
pattern = "Embryo_"
)
) %>%
left_join(table_s8_1[, c("sample_id", "embryo_id")])
## Joining, by = "sample_id"
# Table S8.3 Group information of single cells in extended data figure 4o.
# cleaned
table_s8_3 <- tibble::tribble(
~sample_id, ~day, ~group,
"D12A3B14", "D12", "EPI",
"D12A3S13", "D12", "EPI",
"D12A3S15", "D12", "EPI",
"D12A3S16", "D12", "EPI",
"D12A3S2", "D12", "EPI",
"D12A3S23", "D12", "EPI",
"D12A3S24", "D12", "EPI",
"D12A3S26", "D12", "EPI",
"D12A3S27", "D12", "EPI",
"D12A3S32", "D12", "EPI",
"D12A4S26", "D12", "EPI",
"D12A4S27", "D12", "EPI",
"D12A4S30", "D12", "EPI",
"D12A5S16", "D12", "EPI",
"D12A5S19", "D12", "EPI",
"D12A5S5", "D12", "EPI",
"D12A5S6", "D12", "EPI",
"D14A1B27", "D14", "EPI",
"D14A1B28", "D14", "EPI",
"D14A1S33", "D14", "EPI",
"D14A1S41", "D14", "EPI",
"D14A1S45", "D14", "EPI",
"D14A1S46", "D14", "EPI",
"D14A1S47", "D14", "EPI",
"D14A1S48", "D14", "EPI",
"D14A1S51", "D14", "EPI",
"D14A1S56", "D14", "EPI",
"D14A1S58", "D14", "EPI",
"D14A1S61", "D14", "EPI",
"D14A1S62", "D14", "EPI",
"D14A1S64", "D14", "EPI",
"D14_3S10", "D14", "EPI",
"D14_3S15", "D14", "EPI",
"D14_3S16", "D14", "EPI",
"D14A1B13", "D14", "EPI",
"D14A1B16", "D14", "EPI",
"D14A1B2", "D14", "EPI",
"D14A1B8", "D14", "EPI",
"D14A1S11", "D14", "EPI",
"D14A1S13", "D14", "EPI",
"D14A1S14", "D14", "EPI",
"D14A1S17", "D14", "EPI",
"D14A1S18", "D14", "EPI",
"D14A1S19", "D14", "EPI",
"D14A1S20", "D14", "EPI",
"D14A1S21", "D14", "EPI",
"D14A1S26", "D14", "EPI",
"D14A1S28", "D14", "EPI",
"D14A1S30", "D14", "EPI",
"D14A1S31", "D14", "EPI",
"D14A1S6", "D14", "EPI",
"D14A1S7", "D14", "EPI",
"D14A1S9", "D14", "EPI",
"D12A3S3", "D12", "Intermediate",
"D12A4S29", "D12", "Intermediate",
"D12A4S7", "D12", "Intermediate",
"D14A1S39", "D14", "Intermediate",
"D14A1S42", "D14", "Intermediate",
"D14A1S43", "D14", "Intermediate",
"D14A1S57", "D14", "Intermediate",
"D14A1S60", "D14", "Intermediate",
"D14A3S20", "D14", "Intermediate",
"D14A3S29", "D14", "Intermediate",
"D14A1B11", "D14", "Intermediate",
"D14A1B4", "D14", "Intermediate",
"D14A1B6", "D14", "Intermediate",
"D14A1B9", "D14", "Intermediate",
"D14A1S1", "D14", "Intermediate",
"D14A1S10", "D14", "Intermediate",
"D14A1S12", "D14", "Intermediate",
"D14A1S2", "D14", "Intermediate",
"D14A1S22", "D14", "Intermediate",
"D14A1S23", "D14", "Intermediate",
"D14A1S25", "D14", "Intermediate",
"D14A1S29", "D14", "Intermediate",
"D14A1S3", "D14", "Intermediate",
"D14A1S32", "D14", "Intermediate",
"D14A1S5", "D14", "Intermediate",
"D14A1S8", "D14", "Intermediate",
"D14A1B3", "D14", "AME",
"D14A1S24", "D14", "AME",
"D14A1S27", "D14", "AME",
"D12A3S10", "D12", "AME",
"D12A4S22", "D12", "AME",
"D14A1S59", "D14", "AME",
"D14A1B1", "D14", "AME",
"D14A1B14", "D14", "AME",
"D14A1B15", "D14", "AME",
"D14A1B5", "D14", "AME",
"D14A1B7", "D14", "AME",
"D14A1S15", "D14", "AME",
"D14A1S16", "D14", "AME"
)
# "D12A3B14" %in% embedding$sample_id
# "D14_3S10" %in% embedding$sample_id
# "D14A1S12" %in% embedding$sample_id
embedding2 <- embedding %>%
left_join(
table_s8_3[, c("sample_id", "group")],
by = "sample_id"
)
color_value_factors <- embedding2$group
color_value_factors[is.na(embedding2$group)] <- "N/A"
# Extended data figure 4o
plot_embedding(
embedding = embedding2[, c("x_tsne", "y_tsne")],
color_values = color_value_factors,
label = "t-SNE; Cell type",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = c(
RColorBrewer::brewer.pal(
n = length(unique(color_value_factors)) - 1,
name = "Dark2"
),
"grey70"
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank()
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
# Table S8.4 Cells used in extended data figure 5i.
embedding2 <- embedding %>%
mutate(
group = case_when(
sample_id %in% c(
"D14A1S6",
"D14A1S28",
"D14A1S30",
"D14A1S7",
"D14A1S31",
"D14A1S13",
"D14A1S58",
"D14A1S47",
"D14A1S64",
"D14A3S20",
"D14A1S21",
"D14A1B27"
) ~ "HESX1-T+ EPI",
sample_id %in% c(
"D14A1S46",
"D14A1S51",
"D14A1B2",
"D14A1S12",
"D14A1S14",
"D14A1S29",
"D14A1S33",
"D14A1S56",
"D14_3S10",
"D14_3S15"
)
~ "HESX1+T- EPI"
),
group = ifelse(is.na(group), "N/A", group)
)
embedding2 %>%
dplyr::count(group)
# Extended data figure 4o
p_embedding_HESX1_p1 <- plot_embedding(
embedding = embedding2[, c("x_tsne", "y_tsne")],
color_values = embedding2$group %>% factor(),
label = "t-SNE; Extended Data Fig. 4o",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = c(
ggsci::pal_npg("nrc", alpha = 1)(
embedding2$group %>% unique() %>% length() - 1
),
"grey70"
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank(),
#
legend.justification = c(0, 1),
legend.position = c(0.075, 0.975)
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
(rownames(matrix_readcount_use)[gene_symbo_info$X2 %in% "HESX1"])
## [1] "ENSG00000163666_HESX1"
p_embedding_HESX1_p2 <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use["ENSG00000163666_HESX1", embedding$cell],
colorbar_position = c(0.86, 0.28),
label = str_c("t-SNE; ", "ENSG00000163666_HESX1"),
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = TRUE,
FUN = NULL
)
color_values <- matrix_cpm_use["ENSG00000163666_HESX1", embedding$cell]
color_values[!embedding$cell_type %in% c("EPI")] <- NA
p_embedding_HESX1_p3 <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = color_values,
colorbar_position = c(0.86, 0.28),
label = str_c("t-SNE; ", "ENSG00000163666_HESX1", "; EPI"),
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = TRUE,
FUN = NULL
)
color_values <- matrix_cpm_use["ENSG00000163666_HESX1", embedding$cell]
color_values[!embedding$cell_type %in% c("PSA-EPI")] <- NA
p_embedding_HESX1_p4 <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = color_values,
colorbar_position = c(0.86, 0.28),
label = str_c("t-SNE; ", "ENSG00000163666_HESX1", "; PSA-EPI"),
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = TRUE,
FUN = NULL
)
p_embedding_HESX1_p1 +
p_embedding_HESX1_p2 +
p_embedding_HESX1_p3 +
p_embedding_HESX1_p4 +
plot_annotation(theme = theme(plot.margin = margin())) +
plot_layout(guides = "keep")
FEATURES_SELECTED <- c(
"ENSG00000163666_HESX1",
"ENSG00000164458_TBXT"
)
map(FEATURES_SELECTED, function(x) {
embedding %>%
mutate(feature_value = matrix_cpm_use[x, cell]) %>%
group_by(developmental_stage, cell_type) %>%
summarise(mean_expr = mean(feature_value + 1)) %>%
plot_barplot_feature(
x = developmental_stage,
y = mean_expr,
z = "cell_type",
title = x
)
}) %>%
purrr::reduce(`+`) +
plot_layout(ncol = 1) +
plot_annotation(
tag_levels = c("A"),
theme = theme(plot.margin = margin())
) &
theme(
plot.tag.position = c(0, 1),
plot.tag = element_text(
family = "Arial",
size = 7,
hjust = 0,
vjust = 0
)
)
## `summarise()` regrouping output by 'developmental_stage' (override with `.groups` argument)
## `summarise()` regrouping output by 'developmental_stage' (override with `.groups` argument)
# Table S8.5 Group information of 352 TrBs in extended data figure 8j_o.
table_s8_5 <- tibble::tribble(
~sample_id, ~day, ~group,
"D6A1B1", "D6", "Pre-CTB",
"D6A1B2", "D6", "Pre-CTB",
"D6A1S1", "D6", "Pre-CTB",
"D6A1S2", "D6", "Pre-CTB",
"D6A1S3", "D6", "Pre-CTB",
"D6A1S4", "D6", "Pre-CTB",
"D6A2B1", "D6", "Pre-CTB",
"D6A2B2", "D6", "Pre-CTB",
"D6A2B4", "D6", "Pre-CTB",
"D6A2S6", "D6", "Pre-CTB",
"D6A2S7", "D6", "Pre-CTB",
"D6A2S8", "D6", "Pre-CTB",
"D6A3B1", "D6", "Pre-CTB",
"D6A3B2", "D6", "Pre-CTB",
"D6A3S1", "D6", "Pre-CTB",
"D6A3S5", "D6", "Pre-CTB",
"D6A4B3", "D6", "Pre-CTB",
"D6A4B4", "D6", "Pre-CTB",
"D6A4S4", "D6", "Pre-CTB",
"D6A4S5", "D6", "Pre-CTB",
"D6A4S6", "D6", "Pre-CTB",
"D6A4S7", "D6", "Pre-CTB",
"D6A5B3", "D6", "Pre-CTB",
"D6A5B4", "D6", "Pre-CTB",
"D6A5S1", "D6", "Pre-CTB",
"D6A5S7", "D6", "Pre-CTB",
"D7A1B1", "D7", "Pre-CTB",
"D7A1B3", "D7", "Pre-CTB",
"D7A1B7", "D7", "Pre-CTB",
"D7A1B8", "D7", "Pre-CTB",
"D7A1S14", "D7", "Pre-CTB",
"D7A1S15", "D7", "Pre-CTB",
"D7A1S1", "D7", "Pre-CTB",
"D7A1S5", "D7", "Pre-CTB",
"D7A1S6", "D7", "Pre-CTB",
"D7A2B4", "D7", "Pre-CTB",
"D7A2B5", "D7", "Pre-CTB",
"D7A2S14", "D7", "Pre-CTB",
"D7A2S1", "D7", "Pre-CTB",
"D7A2S2", "D7", "Pre-CTB",
"D9A4S4", "D9", "Pre-CTB",
"D9A4S14", "D9", "Pre-CTB",
"D7A2B1", "D7", "Post-CTB",
"D7A2S3", "D7", "Post-CTB",
"D7A1B5", "D7", "Post-CTB",
"D7A1S11", "D7", "Post-CTB",
"D7A1S7", "D7", "Post-CTB",
"D7A1S9", "D7", "Post-CTB",
"D7A2B6", "D7", "Post-CTB",
"D7A2B8", "D7", "Post-CTB",
"D7A2S10", "D7", "Post-CTB",
"D7A2S16", "D7", "Post-CTB",
"D7A2S6", "D7", "Post-CTB",
"D7A3B10", "D7", "Post-CTB",
"D7A3B1", "D7", "Post-CTB",
"D7A3B3", "D7", "Post-CTB",
"D7A3S10", "D7", "Post-CTB",
"D7A3S12", "D7", "Post-CTB",
"D7A3S14", "D7", "Post-CTB",
"D7A3S1", "D7", "Post-CTB",
"D7A3S3", "D7", "Post-CTB",
"D7A3S4", "D7", "Post-CTB",
"D7A3S5", "D7", "Post-CTB",
"D7A4B3", "D7", "Post-CTB",
"D7A4B5", "D7", "Post-CTB",
"D7A4B6", "D7", "Post-CTB",
"D7A4B8", "D7", "Post-CTB",
"D7A4S13", "D7", "Post-CTB",
"D7A4S14", "D7", "Post-CTB",
"D7A4S15", "D7", "Post-CTB",
"D7A4S1", "D7", "Post-CTB",
"D8_8B2", "D8", "Post-CTB",
"D8_8B4", "D8", "Post-CTB",
"D8_8S1", "D8", "Post-CTB",
"D8_8S3", "D8", "Post-CTB",
"D8_8S4", "D8", "Post-CTB",
"D8_8S5", "D8", "Post-CTB",
"D8_8S6", "D8", "Post-CTB",
"D8_8S7", "D8", "Post-CTB",
"D8_8S8", "D8", "Post-CTB",
"D8A5B8", "D8", "Post-CTB",
"D8A5S14", "D8", "Post-CTB",
"D8A5S1", "D8", "Post-CTB",
"D8A5S4", "D8", "Post-CTB",
"D8A6B1", "D8", "Post-CTB",
"D8A6B3", "D8", "Post-CTB",
"D8A6S5", "D8", "Post-CTB",
"D9A1S8", "D9", "Post-CTB",
"D9A2B5", "D9", "Post-CTB",
"D9A2S1", "D9", "Post-CTB",
"D9A2S2", "D9", "Post-CTB",
"D9A2S3", "D9", "Post-CTB",
"D9A2S4", "D9", "Post-CTB",
"D8A1B2", "D8", "Early-EVT",
"D8A1B3", "D8", "Early-EVT",
"D8A1B6", "D8", "Early-EVT",
"D8A1S1", "D8", "Early-EVT",
"D8A1S3", "D8", "Early-EVT",
"D8A1S7", "D8", "Early-EVT",
"D8A2S12", "D8", "Early-EVT",
"D8A2S24", "D8", "Early-EVT",
"D8A2S3", "D8", "Early-EVT",
"D8A2S4", "D8", "Early-EVT",
"D8A3S12", "D8", "Early-EVT",
"D8A3S7", "D8", "Early-EVT",
"D8A5B7", "D8", "Early-EVT",
"D8A6B6", "D8", "Early-EVT",
"D8A6S15", "D8", "Early-EVT",
"D9A1B16", "D9", "Early-EVT",
"D9A1B1", "D9", "Early-EVT",
"D9A1B3", "D9", "Early-EVT",
"D9A1S23", "D9", "Early-EVT",
"D9A1S26", "D9", "Early-EVT",
"D9A1S2", "D9", "Early-EVT",
"D9A1S3", "D9", "Early-EVT",
"D9A1S7", "D9", "Early-EVT",
"D9A2B3", "D9", "Early-EVT",
"D9A2B8", "D9", "Early-EVT",
"D9A3B1", "D9", "Early-EVT",
"D9A3B7", "D9", "Early-EVT",
"D9A3S1", "D9", "Early-EVT",
"D9A3S2", "D9", "Early-EVT",
"D9A3S3", "D9", "Early-EVT",
"D9A4B2", "D9", "Early-EVT",
"D9A4B4", "D9", "Early-EVT",
"D9A4B7", "D9", "Early-EVT",
"D9A4B8", "D9", "Early-EVT",
"D9A4S10", "D9", "Early-EVT",
"D9A4S11", "D9", "Early-EVT",
"D9A4S6", "D9", "Early-EVT",
"D9A4S7", "D9", "Early-EVT",
"D9A4S9", "D9", "Early-EVT",
"D9A5B5", "D9", "Early-EVT",
"D9A5S10", "D9", "Early-EVT",
"D9A5S3", "D9", "Early-EVT",
"D9A5S8", "D9", "Early-EVT",
"D9A6B6", "D9", "Early-EVT",
"D9A6B8", "D9", "Early-EVT",
"D9A6S10", "D9", "Early-EVT",
"D9A6S14", "D9", "Early-EVT",
"D9A6S15", "D9", "Early-EVT",
"D9A6S5", "D9", "Early-EVT",
"D10A1B17", "D10", "Early-EVT",
"D10A1S10", "D10", "Early-EVT",
"D10A1S11", "D10", "Early-EVT",
"D10A1S12", "D10", "Early-EVT",
"D10A1S1", "D10", "Early-EVT",
"D10A1S3", "D10", "Early-EVT",
"D10A1S9", "D10", "Early-EVT",
"D10A2B2", "D10", "Early-EVT",
"D10A2S1", "D10", "Early-EVT",
"D10A2S21", "D10", "Early-EVT",
"D10A3B17", "D10", "Early-EVT",
"D10A3B2", "D10", "Early-EVT",
"D10A3B4", "D10", "Early-EVT",
"D10A3B5", "D10", "Early-EVT",
"D10A3B7", "D10", "Early-EVT",
"D10A3B9", "D10", "Early-EVT",
"D10A3S1", "D10", "Early-EVT",
"D10A3S2", "D10", "Early-EVT",
"D10A3S35", "D10", "Early-EVT",
"D10A3S7", "D10", "Early-EVT",
"D10A3S9", "D10", "Early-EVT",
"D10A4B3", "D10", "Early-EVT",
"D10A4S14", "D10", "Early-EVT",
"D10A4S16", "D10", "Early-EVT",
"D10A4S7", "D10", "Early-EVT",
"D10A4S9", "D10", "Early-EVT",
"D10A5S3", "D10", "Early-EVT",
"D10A6S10", "D10", "Early-EVT",
"D12A3B4", "D12", "Early-EVT",
"D12A3S11", "D12", "Early-EVT",
"D12A3S12", "D12", "Early-EVT",
"D12A3S17", "D12", "Early-EVT",
"D12A3S19", "D12", "Early-EVT",
"D12A3S21", "D12", "Early-EVT",
"D12A3S25", "D12", "Early-EVT",
"D12A3S28", "D12", "Early-EVT",
"D12A3S31", "D12", "Early-EVT",
"D12A3S4", "D12", "Early-EVT",
"D12A3S5", "D12", "Early-EVT",
"D12A3S6", "D12", "Early-EVT",
"D12A3S8", "D12", "Early-EVT",
"D12A3S9", "D12", "Early-EVT",
"D12A4S12", "D12", "Early-EVT",
"D12A4S16", "D12", "Early-EVT",
"D12A4S17", "D12", "Early-EVT",
"D12A4S2", "D12", "Early-EVT",
"D12A4S9", "D12", "Early-EVT",
"D12A5B6", "D12", "Early-EVT",
"D12A5S13", "D12", "Early-EVT",
"D12A5S18", "D12", "Early-EVT",
"D14A3S25", "D14", "Early-EVT",
"D14_3S9", "D14", "Early-EVT",
"D8A2B2", "D8", "Early-STB",
"D8A3S2", "D8", "Early-STB",
"D8A1B10", "D8", "Early-STB",
"D8A1B4", "D8", "Early-STB",
"D8A2B1", "D8", "Early-STB",
"D8A2B5", "D8", "Early-STB",
"D8A2S1", "D8", "Early-STB",
"D8A3B10", "D8", "Early-STB",
"D8A3B1", "D8", "Early-STB",
"D8A3B4", "D8", "Early-STB",
"D8A3S13", "D8", "Early-STB",
"D8A3S1", "D8", "Early-STB",
"D8A3S28", "D8", "Early-STB",
"D8A3S5", "D8", "Early-STB",
"D8A3S8", "D8", "Early-STB",
"D9A2B2", "D9", "Early-STB",
"D9A1B15", "D9", "Early-STB",
"D9A1B2", "D9", "Early-STB",
"D9A1B4", "D9", "Early-STB",
"D9A1S1", "D9", "Early-STB",
"D9A2B1", "D9", "Early-STB",
"D9A3B2", "D9", "Early-STB",
"D9A3B3", "D9", "Early-STB",
"D9A3B4", "D9", "Early-STB",
"D9A3S11", "D9", "Early-STB",
"D9A3S15", "D9", "Early-STB",
"D9A5S6", "D9", "Early-STB",
"D9A6B1", "D9", "Early-STB",
"D10A1S7", "D10", "Early-STB",
"D10A1B11", "D10", "Early-STB",
"D10A1B1", "D10", "Early-STB",
"D10A1B2", "D10", "Early-STB",
"D10A1B3", "D10", "Early-STB",
"D10A1B4", "D10", "Early-STB",
"D10A1B5", "D10", "Early-STB",
"D10A1B7", "D10", "Early-STB",
"D10A1B8", "D10", "Early-STB",
"D10A1S13", "D10", "Early-STB",
"D10A1S2", "D10", "Early-STB",
"D10A1S4", "D10", "Early-STB",
"D10A2B4", "D10", "Early-STB",
"D10A2B6", "D10", "Early-STB",
"D10A2S2", "D10", "Early-STB",
"D10A3B3", "D10", "Early-STB",
"D10A3B6", "D10", "Early-STB",
"D10A3B8", "D10", "Early-STB",
"D10A4B7", "D10", "Early-STB",
"D10A4B8", "D10", "Early-STB",
"D10A4S11", "D10", "Early-STB",
"D10A4S4", "D10", "Early-STB",
"D10A4S8", "D10", "Early-STB",
"D10A5B1", "D10", "Early-STB",
"D10A5B8", "D10", "Early-STB",
"D10A5S16", "D10", "Early-STB",
"D12A3S18", "D12", "Early-STB",
"D12A3S20", "D12", "Early-STB",
"D12_1B4", "D12", "Early-STB",
"D12A3B12", "D12", "Early-STB",
"D12A3B8", "D12", "Early-STB",
"D12A3S1", "D12", "Early-STB",
"D12A3S22", "D12", "Early-STB",
"D12A3S30", "D12", "Early-STB",
"D12A3S7", "D12", "Early-STB",
"D14_1S10", "D14", "Early-STB",
"D14A1B26", "D14", "Early-STB",
"D14A1S34", "D14", "Early-STB",
"D14A1S36", "D14", "Early-STB",
"D10A2B1", "D10", "STB",
"D10A2B3", "D10", "STB",
"D10A3S10", "D10", "STB",
"D10A3S18", "D10", "STB",
"D10A5B3", "D10", "STB",
"D12_2S1", "D12", "STB",
"D12A3B10", "D12", "STB",
"D12A3B11", "D12", "STB",
"D12A3B13", "D12", "STB",
"D12A3B15", "D12", "STB",
"D12A3B16", "D12", "STB",
"D12A3B2", "D12", "STB",
"D12A3B3", "D12", "STB",
"D12A3B5", "D12", "STB",
"D12A3B6", "D12", "STB",
"D12A3B7", "D12", "STB",
"D12A3B9", "D12", "STB",
"D12A3S14", "D12", "STB",
"D12A3S29", "D12", "STB",
"D12A4B15", "D12", "STB",
"D12A4B16", "D12", "STB",
"D12A4B5", "D12", "STB",
"D12A4B8", "D12", "STB",
"D12A4B9", "D12", "STB",
"D12A4S21", "D12", "STB",
"D12A5B15", "D12", "STB",
"D12A5B9", "D12", "STB",
"D14_2S1", "D14", "STB",
"D14_1B2", "D14", "STB",
"D14A1B10", "D14", "STB",
"D14A1B12", "D14", "STB",
"D14A1B18", "D14", "STB",
"D14A1B20", "D14", "STB",
"D14A1B22", "D14", "STB",
"D14A1B23", "D14", "STB",
"D14A1B24", "D14", "STB",
"D14A1B25", "D14", "STB",
"D14A1S44", "D14", "STB",
"D14A1S53", "D14", "STB",
"D14A1S63", "D14", "STB",
"D14A2B16", "D14", "STB",
"D14A2B4", "D14", "STB",
"D14A2B7", "D14", "STB",
"D14A2S19", "D14", "STB",
"D14A2S29", "D14", "STB",
"D14A3B14", "D14", "STB",
"D14A3S18", "D14", "STB",
"D14_2S2", "D14", "STB",
"D10A5S12", "D10", "EVT",
"D12_1B3", "D12", "EVT",
"D12_2B2", "D12", "EVT",
"D12_2B9", "D12", "EVT",
"D12A5B5", "D12", "EVT",
"D14A2S15", "D14", "EVT",
"D14A3S27", "D14", "EVT",
"D14A3S5", "D14", "EVT",
"D14_1B1", "D14", "EVT",
"D14_1B5", "D14", "EVT",
"D14_1S2", "D14", "EVT",
"D14A1B17", "D14", "EVT",
"D14A1B19", "D14", "EVT",
"D14A2B12", "D14", "EVT",
"D14A2B13", "D14", "EVT",
"D14A2B1", "D14", "EVT",
"D14A2B2", "D14", "EVT",
"D14A2B9", "D14", "EVT",
"D14A2S13", "D14", "EVT",
"D14A2S17", "D14", "EVT",
"D14A2S1", "D14", "EVT",
"D14A2S21", "D14", "EVT",
"D14A2S23", "D14", "EVT",
"D14A2S27", "D14", "EVT",
"D14A2S28", "D14", "EVT",
"D14A2S5", "D14", "EVT",
"D14A2S6", "D14", "EVT",
"D14A3B10", "D14", "EVT",
"D14A3B12", "D14", "EVT",
"D14A3B2", "D14", "EVT",
"D14A3B7", "D14", "EVT",
"D14A3S14", "D14", "EVT",
"D14A3S19", "D14", "EVT",
"D14A3S23", "D14", "EVT",
"D14A3S26", "D14", "EVT",
"D14A3S28", "D14", "EVT",
"D14A3S30", "D14", "EVT",
"D14A3S7", "D14", "EVT",
"D14A3S8", "D14", "EVT",
"D14_3B5", "D14", "EVT",
"D14_3B6", "D14", "EVT",
"D14_2B1", "D14", "EVT",
"D14_2B3", "D14", "EVT"
)
embedding2 <- embedding %>%
left_join(
table_s8_5[, c("sample_id", "group")],
by = "sample_id"
)
color_value_factors <- embedding2 %>%
mutate(
group = ifelse(is.na(group), "N/A", group),
group = factor(
group,
levels = c(
"Pre-CTB",
"Post-CTB",
"Early-EVT",
"EVT",
"Early-STB",
"STB",
"N/A"
)
)
) %>%
pull(group)
plot_embedding(
embedding = embedding2[, c("x_tsne", "y_tsne")],
color_values = color_value_factors,
label = "t-SNE; Extended Data Fig. 8j",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = c(
ggsci::pal_npg("nrc", alpha = 1)(
embedding2$group %>% unique() %>% length() - 1
),
"grey70"
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank() # ,
#
# legend.justification = c(0, 1),
# legend.position = c(0.075, 0.975)
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
p_embedding_cluster_cell_type +
plot_annotation(theme = theme(plot.margin = margin())) +
plot_layout(guides = "keep")
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
Four main clusters: ICM, pre-implantation EPI (pre-EPI), post-EPI and PSA-EPI.
# Table S8.6 Group information of EPIs.
# Group information of 222 cells in fig4 (also used in extended data fig 9k-n and 10a-c)
table_s8_6 <- tibble::tribble(
~sample_id, ~day, ~group,
"D6N1B23", "D6", "ICM",
"D6N1B6", "D6", "ICM",
"D6N1S19", "D6", "ICM",
"D6N1S35", "D6", "ICM",
"D6N2B11", "D6", "ICM",
"D6N2B12", "D6", "ICM",
"D6N2B28", "D6", "ICM",
"D6N2B7", "D6", "ICM",
"D6A1B1", "D6", "ICM",
"D6A1B2", "D6", "ICM",
"D6A1S1", "D6", "ICM",
"D6A1S3", "D6", "ICM",
"D6A1S4", "D6", "ICM",
"D6A2B1", "D6", "ICM",
"D6A2B4", "D6", "ICM",
"D6A2S6", "D6", "ICM",
"D6A2S7", "D6", "ICM",
"D6A2S8", "D6", "ICM",
"D6A3B1", "D6", "ICM",
"D6A3B2", "D6", "ICM",
"D6A3S1", "D6", "ICM",
"D6A3S5", "D6", "ICM",
"D6A4B3", "D6", "ICM",
"D6A4B4", "D6", "ICM",
"D6A4S4", "D6", "ICM",
"D6A4S5", "D6", "ICM",
"D6A4S6", "D6", "ICM",
"D6A4S7", "D6", "ICM",
"D6A5B3", "D6", "ICM",
"D6A5B4", "D6", "ICM",
"D6A5S1", "D6", "ICM",
"D6A5S7", "D6", "ICM",
"D7N1B5", "D7", "ICM",
"D7N1S18", "D7", "ICM",
"D7A1B1", "D7", "ICM",
"D7A1B3", "D7", "ICM",
"D7A1B7", "D7", "ICM",
"D7A1B8", "D7", "ICM",
"D7A1S1", "D7", "ICM",
"D7A1S14", "D7", "ICM",
"D7A1S15", "D7", "ICM",
"D7A1S5", "D7", "ICM",
"D7A1S6", "D7", "ICM",
"D7A2B1", "D7", "ICM",
"D7A2B4", "D7", "ICM",
"D7A2B5", "D7", "ICM",
"D7A2S1", "D7", "ICM",
"D7A2S14", "D7", "ICM",
"D7A2S2", "D7", "ICM",
"D7A2S3", "D7", "ICM",
"D9A4S14", "D9", "ICM",
"D9A4S4", "D9", "ICM",
"D6N1S1", "D6", "PreEPI",
"D6N1S15", "D6", "PreEPI",
"D6N1S3", "D6", "PreEPI",
"D6N1S33", "D6", "PreEPI",
"D6N1S34", "D6", "PreEPI",
"D6N1S4", "D6", "PreEPI",
"D6N1S42", "D6", "PreEPI",
"D6N1S9", "D6", "PreEPI",
"D6N2B1", "D6", "PreEPI",
"D6N2B18", "D6", "PreEPI",
"D6N2B2", "D6", "PreEPI",
"D6N2B8", "D6", "PreEPI",
"D6N2S11", "D6", "PreEPI",
"D6N2S2", "D6", "PreEPI",
"D6N2S35", "D6", "PreEPI",
"D6N3B12", "D6", "PreEPI",
"D6N3B7", "D6", "PreEPI",
"D6N3S11", "D6", "PreEPI",
"D6N3S2", "D6", "PreEPI",
"D6N3S22", "D6", "PreEPI",
"D6N3S28", "D6", "PreEPI",
"D6N3S35", "D6", "PreEPI",
"D6N3S40", "D6", "PreEPI",
"D6N3S51", "D6", "PreEPI",
"D6A1S2", "D6", "PreEPI",
"D6A2B2", "D6", "PreEPI",
"D6A3S4", "D6", "PreEPI",
"D6A5S8", "D6", "PreEPI",
"D7N1B1", "D7", "PreEPI",
"D7N1B7", "D7", "PreEPI",
"D7N1B9", "D7", "PreEPI",
"D7N1S15", "D7", "PreEPI",
"D7N1S19", "D7", "PreEPI",
"D7N1S21", "D7", "PreEPI",
"D7N1S24", "D7", "PreEPI",
"D7N1S27", "D7", "PreEPI",
"D7N1S30", "D7", "PreEPI",
"D7N1S7", "D7", "PreEPI",
"D7N1S9", "D7", "PreEPI",
"D7A1S13", "D7", "PreEPI",
"D7A1S16", "D7", "PreEPI",
"D7A3B8", "D7", "PreEPI",
"D7A3S8", "D7", "PreEPI",
"D8_8B1", "D8", "PreEPI",
"D8_8S2", "D8", "PreEPI",
"D8A1S11", "D8", "PreEPI",
"D8A1S24", "D8", "PreEPI",
"D8A2S10", "D8", "PreEPI",
"D8A2S15", "D8", "PreEPI",
"D8A2S2", "D8", "PreEPI",
"D8A2S29", "D8", "PreEPI",
"D8A6S7", "D8", "PreEPI",
"D9A1S10", "D9", "PreEPI",
"D9A4S1", "D9", "PreEPI",
"D9A4S16", "D9", "PreEPI",
"D9A4S5", "D9", "PreEPI",
"D9A5S11", "D9", "PreEPI",
"D10A1S34", "D10", "PreEPI",
"D10A1S6", "D10", "PreEPI",
"D10A2S3", "D10", "PreEPI",
"D10A6S7", "D10", "PreEPI",
"D14A1S20", "D14", "PreEPI",
"D14A1S59", "D14", "PreEPI",
"D8A1S31", "D8", "PostEPI",
"D8A1S8", "D8", "PostEPI",
"D9A1S28", "D9", "PostEPI",
"D9A3S14", "D9", "PostEPI",
"D9A4S3", "D9", "PostEPI",
"D9A5S12", "D9", "PostEPI",
"D9A5S9", "D9", "PostEPI",
"D10A1S21", "D10", "PostEPI",
"D10A1S23", "D10", "PostEPI",
"D10A1S31", "D10", "PostEPI",
"D10A1S32", "D10", "PostEPI",
"D10A1S40", "D10", "PostEPI",
"D10A2S17", "D10", "PostEPI",
"D10A2S32", "D10", "PostEPI",
"D10A6S4", "D10", "PostEPI",
"D10A6S5", "D10", "PostEPI",
"D10A6S8", "D10", "PostEPI",
"D12A3B14", "D12", "PostEPI",
"D12A3S10", "D12", "PostEPI",
"D12A3S13", "D12", "PostEPI",
"D12A3S15", "D12", "PostEPI",
"D12A3S16", "D12", "PostEPI",
"D12A3S2", "D12", "PostEPI",
"D12A3S23", "D12", "PostEPI",
"D12A3S24", "D12", "PostEPI",
"D12A3S26", "D12", "PostEPI",
"D12A3S27", "D12", "PostEPI",
"D12A3S3", "D12", "PostEPI",
"D12A3S32", "D12", "PostEPI",
"D12A4S22", "D12", "PostEPI",
"D12A4S26", "D12", "PostEPI",
"D12A4S27", "D12", "PostEPI",
"D12A4S29", "D12", "PostEPI",
"D12A4S30", "D12", "PostEPI",
"D12A4S7", "D12", "PostEPI",
"D12A5S16", "D12", "PostEPI",
"D12A5S19", "D12", "PostEPI",
"D12A5S5", "D12", "PostEPI",
"D12A5S6", "D12", "PostEPI",
"D14A1B27", "D14", "PostEPI",
"D14A1B28", "D14", "PostEPI",
"D14A1S29", "D14", "PostEPI",
"D14A1S33", "D14", "PostEPI",
"D14A1S39", "D14", "PostEPI",
"D14A1S41", "D14", "PostEPI",
"D14A1S42", "D14", "PostEPI",
"D14A1S43", "D14", "PostEPI",
"D14A1S45", "D14", "PostEPI",
"D14A1S46", "D14", "PostEPI",
"D14A1S47", "D14", "PostEPI",
"D14A1S48", "D14", "PostEPI",
"D14A1S51", "D14", "PostEPI",
"D14A1S56", "D14", "PostEPI",
"D14A1S57", "D14", "PostEPI",
"D14A1S58", "D14", "PostEPI",
"D14A1S60", "D14", "PostEPI",
"D14A1S61", "D14", "PostEPI",
"D14A1S62", "D14", "PostEPI",
"D14A1S64", "D14", "PostEPI",
"D14A3S20", "D14", "PostEPI",
"D14A3S29", "D14", "PostEPI",
"D14_3S10", "D14", "PostEPI",
"D14_3S15", "D14", "PostEPI",
"D14_3S16", "D14", "PostEPI",
"D14A1B1", "D14", "PSA_EPI",
"D14A1B11", "D14", "PSA_EPI",
"D14A1B13", "D14", "PSA_EPI",
"D14A1B14", "D14", "PSA_EPI",
"D14A1B15", "D14", "PSA_EPI",
"D14A1B16", "D14", "PSA_EPI",
"D14A1B2", "D14", "PSA_EPI",
"D14A1B3", "D14", "PSA_EPI",
"D14A1B4", "D14", "PSA_EPI",
"D14A1B5", "D14", "PSA_EPI",
"D14A1B6", "D14", "PSA_EPI",
"D14A1B7", "D14", "PSA_EPI",
"D14A1B8", "D14", "PSA_EPI",
"D14A1B9", "D14", "PSA_EPI",
"D14A1S1", "D14", "PSA_EPI",
"D14A1S10", "D14", "PSA_EPI",
"D14A1S11", "D14", "PSA_EPI",
"D14A1S12", "D14", "PSA_EPI",
"D14A1S13", "D14", "PSA_EPI",
"D14A1S14", "D14", "PSA_EPI",
"D14A1S15", "D14", "PSA_EPI",
"D14A1S16", "D14", "PSA_EPI",
"D14A1S17", "D14", "PSA_EPI",
"D14A1S18", "D14", "PSA_EPI",
"D14A1S19", "D14", "PSA_EPI",
"D14A1S2", "D14", "PSA_EPI",
"D14A1S21", "D14", "PSA_EPI",
"D14A1S22", "D14", "PSA_EPI",
"D14A1S23", "D14", "PSA_EPI",
"D14A1S24", "D14", "PSA_EPI",
"D14A1S25", "D14", "PSA_EPI",
"D14A1S26", "D14", "PSA_EPI",
"D14A1S27", "D14", "PSA_EPI",
"D14A1S28", "D14", "PSA_EPI",
"D14A1S3", "D14", "PSA_EPI",
"D14A1S30", "D14", "PSA_EPI",
"D14A1S31", "D14", "PSA_EPI",
"D14A1S32", "D14", "PSA_EPI",
"D14A1S5", "D14", "PSA_EPI",
"D14A1S6", "D14", "PSA_EPI",
"D14A1S7", "D14", "PSA_EPI",
"D14A1S8", "D14", "PSA_EPI",
"D14A1S9", "D14", "PSA_EPI"
)
embedding2 <- embedding %>%
left_join(
table_s8_6[, c("sample_id", "group")],
by = "sample_id"
)
color_value_factors <- embedding2$group
color_value_factors[is.na(embedding2$group)] <- "N/A"
color_value_factors <- color_value_factors %>%
factor(., levels = c("ICM", "PSA_EPI", "PreEPI", "PostEPI", "N/A"))
# %>%
# forcats::fct_relevel("N/A", after = Inf)
plot_embedding(
embedding = embedding2[, c("x_tsne", "y_tsne")],
color_values = color_value_factors,
label = "t-SNE; Fig. 4a",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = c(
ggsci::pal_npg("nrc", alpha = 1)(
embedding2$group %>% unique() %>% length() - 1
),
"grey70"
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank() # ,
#
# legend.justification = c(0, 1),
# legend.position = c(0.075, 0.975)
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
p_embedding_cluster_cell_type +
plot_annotation(theme = theme(plot.margin = margin())) +
plot_layout(guides = "keep")
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
# Table S8.6 Group information of EPIs.
# Group information of 136 cells in extended data fig9 e-j
table_s8_6 <- tibble::tribble(
~sample_id, ~day, ~group,
"D6N1B6", "D6", "ICM",
"D6N1S1", "D6", "ICM",
"D6N1S15", "D6", "ICM",
"D6N1S3", "D6", "ICM",
"D6N1S33", "D6", "ICM",
"D6N1S34", "D6", "ICM",
"D6N1S35", "D6", "ICM",
"D6N1S4", "D6", "ICM",
"D6N1S42", "D6", "ICM",
"D6N1S9", "D6", "ICM",
"D6N2B1", "D6", "ICM",
"D6N2B11", "D6", "ICM",
"D6N2B12", "D6", "ICM",
"D6N2B18", "D6", "ICM",
"D6N2B2", "D6", "ICM",
"D6N2B28", "D6", "ICM",
"D6N2B7", "D6", "ICM",
"D6N2B8", "D6", "ICM",
"D6N2S11", "D6", "ICM",
"D6N2S2", "D6", "ICM",
"D6N2S35", "D6", "ICM",
"D6N3B12", "D6", "ICM",
"D6N3B7", "D6", "ICM",
"D6N3S11", "D6", "ICM",
"D6N3S2", "D6", "ICM",
"D6N3S22", "D6", "ICM",
"D6N3S28", "D6", "ICM",
"D6N3S35", "D6", "ICM",
"D6N3S40", "D6", "ICM",
"D6N3S51", "D6", "ICM",
"D6A1S2", "D6", "ICM",
"D6A2B2", "D6", "ICM",
"D6A2B4", "D6", "ICM",
"D6A2S6", "D6", "ICM",
"D6A5S8", "D6", "ICM",
"D7N1B5", "D7", "ICM",
"D7N1B9", "D7", "ICM",
"D7N1S15", "D7", "ICM",
"D7N1S18", "D7", "ICM",
"D7N1S19", "D7", "ICM",
"D7N1S21", "D7", "ICM",
"D7N1S24", "D7", "ICM",
"D7N1S27", "D7", "ICM",
"D7N1S9", "D7", "ICM",
"D7A1B3", "D7", "ICM",
"D7N1B1", "D7", "ICM",
"D7N1B7", "D7", "ICM",
"D7N1S30", "D7", "ICM",
"D7N1S7", "D7", "ICM",
"D7A1S13", "D7", "PreEPI",
"D7A1S16", "D7", "PreEPI",
"D7A3B8", "D7", "PreEPI",
"D7A3S8", "D7", "PreEPI",
"D8_8B1", "D8", "PreEPI",
"D8_8S2", "D8", "PreEPI",
"D8A1S11", "D8", "PreEPI",
"D8A1S31", "D8", "PreEPI",
"D8A1S8", "D8", "PreEPI",
"D8A2S10", "D8", "PreEPI",
"D8A2S15", "D8", "PreEPI",
"D8A2S2", "D8", "PreEPI",
"D8A2S29", "D8", "PreEPI",
"D8A6S7", "D8", "PreEPI",
"D9A1S10", "D9", "PreEPI",
"D9A1S28", "D9", "PreEPI",
"D9A4S1", "D9", "PreEPI",
"D9A4S16", "D9", "PreEPI",
"D9A5S11", "D9", "PreEPI",
"D9A5S12", "D9", "PreEPI",
"D10A1S21", "D10", "PreEPI",
"D10A1S32", "D10", "PreEPI",
"D10A1S34", "D10", "PreEPI",
"D9A4S5", "D9", "PostEPI",
"D9A3S14", "D9", "PostEPI",
"D9A4S3", "D9", "PostEPI",
"D10A1S6", "D10", "PostEPI",
"D10A1S23", "D10", "PostEPI",
"D10A1S31", "D10", "PostEPI",
"D10A1S40", "D10", "PostEPI",
"D10A2S17", "D10", "PostEPI",
"D10A2S32", "D10", "PostEPI",
"D10A6S4", "D10", "PostEPI",
"D10A6S5", "D10", "PostEPI",
"D10A6S7", "D10", "PostEPI",
"D10A6S8", "D10", "PostEPI",
"D12A3B14", "D12", "PostEPI",
"D12A3S10", "D12", "PostEPI",
"D12A3S13", "D12", "PostEPI",
"D12A3S15", "D12", "PostEPI",
"D12A3S16", "D12", "PostEPI",
"D12A3S2", "D12", "PostEPI",
"D12A3S23", "D12", "PostEPI",
"D12A3S24", "D12", "PostEPI",
"D12A3S26", "D12", "PostEPI",
"D12A3S27", "D12", "PostEPI",
"D12A3S32", "D12", "PostEPI",
"D12A4S22", "D12", "PostEPI",
"D12A4S26", "D12", "PostEPI",
"D12A4S27", "D12", "PostEPI",
"D12A4S29", "D12", "PostEPI",
"D12A5S16", "D12", "PostEPI",
"D12A5S19", "D12", "PostEPI",
"D12A5S5", "D12", "PostEPI",
"D12A5S6", "D12", "PostEPI",
"D14A1B27", "D14", "PostEPI",
"D14A1B28", "D14", "PostEPI",
"D14A1S33", "D14", "PostEPI",
"D14A1S41", "D14", "PostEPI",
"D14A1S45", "D14", "PostEPI",
"D14A1S46", "D14", "PostEPI",
"D14A1S48", "D14", "PostEPI",
"D14A1S51", "D14", "PostEPI",
"D14A1S56", "D14", "PostEPI",
"D14A1S58", "D14", "PostEPI",
"D14A1S61", "D14", "PostEPI",
"D14A1S62", "D14", "PostEPI",
"D14A1S64", "D14", "PostEPI",
"D14_3S10", "D14", "PostEPI",
"D14_3S15", "D14", "PostEPI",
"D14_3S16", "D14", "PostEPI",
"D14A1B13", "D14", "PSA_EPI",
"D14A1B16", "D14", "PSA_EPI",
"D14A1B2", "D14", "PSA_EPI",
"D14A1S11", "D14", "PSA_EPI",
"D14A1S13", "D14", "PSA_EPI",
"D14A1S14", "D14", "PSA_EPI",
"D14A1S17", "D14", "PSA_EPI",
"D14A1S18", "D14", "PSA_EPI",
"D14A1S19", "D14", "PSA_EPI",
"D14A1S21", "D14", "PSA_EPI",
"D14A1S26", "D14", "PSA_EPI",
"D14A1S28", "D14", "PSA_EPI",
"D14A1S30", "D14", "PSA_EPI",
"D14A1S31", "D14", "PSA_EPI",
"D14A1S6", "D14", "PSA_EPI",
"D14A1S9", "D14", "PSA_EPI"
)
embedding2 <- embedding %>%
left_join(
table_s8_6[, c("sample_id", "group")],
by = "sample_id"
)
color_value_factors <- embedding2$group
color_value_factors[is.na(embedding2$group)] <- "N/A"
color_value_factors <- color_value_factors %>%
factor(., levels = c("ICM", "PreEPI", "PostEPI", "PSA_EPI", "N/A"))
# %>%
# forcats::fct_relevel("N/A", after = Inf)
plot_embedding(
embedding = embedding2[, c("x_tsne", "y_tsne")],
color_values = color_value_factors,
label = "t-SNE; Extended Data Fig. 9e",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = TRUE,
geom_point_size = 1,
sort_values = FALSE
) +
scale_color_manual(
values = c(
ggsci::pal_npg("nrc", alpha = 1)(
embedding2$group %>% unique() %>% length() - 1
),
"grey70"
)
) +
labs(color = NULL) +
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank() # ,
#
# legend.justification = c(0, 1),
# legend.position = c(0.075, 0.975)
) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
p_embedding_cluster_cell_type +
plot_annotation(theme = theme(plot.margin = margin())) +
plot_layout(guides = "keep")
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
## setting value
## version R version 4.0.2 (2020-06-22)
## os macOS Catalina 10.15.6
## system x86_64, darwin19.5.0
## ui unknown
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz America/Chicago
## date 2020-07-31
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib
## abind 1.4-5 2016-07-21 [1]
## ape 5.4 2020-06-03 [1]
## assertthat 0.2.1 2019-03-21 [1]
## backports 1.1.8 2020-06-17 [1]
## BayesFactor 0.9.12-4.2 2018-05-19 [1]
## blob 1.2.1 2020-01-20 [1]
## broom 0.7.0.9001 2020-07-28 [1]
## callr 3.4.3 2020-03-28 [1]
## cellranger 1.1.0 2016-07-27 [1]
## circlize 0.4.10 2020-06-15 [1]
## cli 2.0.2 2020-02-28 [1]
## clue 0.3-57 2019-02-25 [1]
## cluster 2.1.0 2019-06-19 [2]
## coda 0.19-3 2019-07-05 [1]
## codetools 0.2-16 2018-12-24 [2]
## colorspace 1.4-1 2019-03-18 [1]
## ComplexHeatmap 2.4.3 2020-07-25 [1]
## cowplot 1.0.0 2019-07-11 [1]
## crayon 1.3.4 2017-09-16 [1]
## data.table 1.13.0 2020-07-24 [1]
## DBI 1.1.0 2019-12-15 [1]
## dbplyr 1.4.4.9000 2020-07-28 [1]
## deldir 0.1-28 2020-07-15 [1]
## desc 1.2.0 2018-05-01 [1]
## devtools 2.3.1.9000 2020-07-29 [1]
## digest 0.6.25 2020-02-23 [1]
## dplyr * 1.0.1 2020-07-28 [1]
## ellipsis 0.3.1.9000 2020-07-18 [1]
## evaluate 0.14 2019-05-28 [1]
## extrafont * 0.17 2014-12-08 [1]
## extrafontdb 1.0 2012-06-11 [1]
## fansi 0.4.1 2020-01-08 [1]
## farver 2.0.3 2020-01-16 [1]
## fastmap 1.0.1 2019-10-08 [1]
## fitdistrplus 1.1-1 2020-05-19 [1]
## forcats * 0.5.0.9000 2020-05-28 [1]
## fs 1.4.2.9000 2020-07-29 [1]
## future 1.18.0 2020-07-09 [1]
## future.apply 1.6.0 2020-07-01 [1]
## generics 0.0.2 2018-11-29 [1]
## GetoptLong 1.0.2 2020-07-06 [1]
## ggplot2 * 3.3.2.9000 2020-07-29 [1]
## ggrepel 0.9.0 2020-07-24 [1]
## ggridges 0.5.2 2020-01-12 [1]
## ggsci 2.9 2020-06-04 [1]
## ggthemes 4.2.0 2019-05-13 [1]
## GlobalOptions 0.1.2 2020-06-10 [1]
## globals 0.12.5 2019-12-07 [1]
## glue 1.4.1.9000 2020-07-07 [1]
## goftest 1.2-2 2019-12-02 [1]
## gridExtra 2.3 2017-09-09 [1]
## gtable 0.3.0 2019-03-25 [1]
## gtools 3.8.2 2020-03-31 [1]
## haven 2.3.1 2020-06-01 [1]
## hms 0.5.3 2020-01-08 [1]
## htmltools 0.5.0 2020-06-16 [1]
## htmlwidgets 1.5.1 2019-10-08 [1]
## httpuv 1.5.4 2020-06-06 [1]
## httr 1.4.2 2020-07-20 [1]
## ica 1.0-2 2018-05-24 [1]
## igraph 1.2.5 2020-03-19 [1]
## irlba 2.3.3 2019-02-05 [1]
## jpeg 0.1-8.1 2019-10-24 [1]
## jsonlite 1.7.0 2020-06-25 [1]
## KernSmooth 2.23-17 2020-04-26 [2]
## knitr 1.29 2020-06-23 [1]
## labeling 0.3 2014-08-23 [1]
## later 1.1.0.1 2020-06-05 [1]
## lattice 0.20-41 2020-04-02 [2]
## lazyeval 0.2.2 2019-03-15 [1]
## leiden 0.3.3 2020-02-04 [1]
## lifecycle 0.2.0 2020-03-06 [1]
## listenv 0.8.0 2019-12-05 [1]
## lmtest 0.9-37 2019-04-30 [1]
## lubridate 1.7.9 2020-07-11 [1]
## magrittr * 1.5.0.9000 2020-07-27 [1]
## MASS 7.3-51.6 2020-04-26 [2]
## Matrix * 1.2-18 2019-11-27 [1]
## MatrixModels 0.4-1 2015-08-22 [1]
## memoise 1.1.0 2017-04-21 [1]
## mgcv 1.8-31 2019-11-09 [2]
## mime 0.9 2020-02-04 [1]
## miniUI 0.1.1.1 2018-05-18 [1]
## modelr 0.1.8.9000 2020-05-19 [1]
## munsell 0.5.0 2018-06-12 [1]
## mvtnorm 1.1-1 2020-06-09 [1]
## nlme 3.1-148 2020-05-24 [2]
## patchwork * 1.0.1.9000 2020-06-22 [1]
## pbapply 1.4-2 2019-08-31 [1]
## pillar 1.4.6.9000 2020-07-21 [1]
## pkgbuild 1.1.0.9000 2020-07-14 [1]
## pkgconfig 2.0.3 2019-09-22 [1]
## pkgload 1.1.0 2020-05-29 [1]
## plotly 4.9.2.1 2020-04-04 [1]
## plyr 1.8.6 2020-03-03 [1]
## png 0.1-7 2013-12-03 [1]
## polyclip 1.10-0 2019-03-14 [1]
## prettyunits 1.1.1 2020-01-24 [1]
## processx 3.4.3 2020-07-05 [1]
## promises 1.1.1 2020-06-09 [1]
## ps 1.3.3 2020-05-08 [1]
## purrr * 0.3.4.9000 2020-07-29 [1]
## R6 2.4.1.9000 2020-07-18 [1]
## RANN 2.6.1 2019-01-08 [1]
## RColorBrewer 1.1-2 2014-12-07 [1]
## Rcpp 1.0.5 2020-07-06 [1]
## RcppAnnoy 0.0.16 2020-03-08 [1]
## readr * 1.3.1.9000 2020-07-16 [1]
## readxl 1.3.1.9000 2020-05-28 [1]
## remotes 2.2.0.9000 2020-07-23 [1]
## reprex 0.3.0 2019-05-16 [1]
## reshape2 1.4.4 2020-04-09 [1]
## reticulate 1.16 2020-05-27 [1]
## rjson 0.2.20 2018-06-08 [1]
## rlang * 0.4.7.9000 2020-07-29 [1]
## rmarkdown 2.3.3 2020-07-25 [1]
## ROCR 1.0-11 2020-05-02 [1]
## rpart 4.1-15 2019-04-12 [2]
## rprojroot 1.3-2 2018-01-03 [1]
## rstudioapi 0.11.0-9000 2020-07-15 [1]
## rsvd 1.0.3 2020-02-17 [1]
## Rtsne 0.16 2020-07-03 [1]
## Rttf2pt1 1.3.8 2020-01-10 [1]
## rvest 0.3.6 2020-07-25 [1]
## scales 1.1.1.9000 2020-07-24 [1]
## sctransform 0.2.1 2019-12-17 [1]
## sessioninfo 1.1.1.9000 2020-07-18 [1]
## Seurat * 3.2.0.9004 2020-07-28 [1]
## shape 1.4.4 2018-02-07 [1]
## shiny 1.5.0.9001 2020-07-28 [1]
## spatstat 1.64-1 2020-05-12 [1]
## spatstat.data 1.4-3 2020-01-26 [1]
## spatstat.utils 1.17-0 2020-02-07 [1]
## stringi 1.4.6 2020-02-17 [1]
## stringr * 1.4.0.9000 2020-06-01 [1]
## styler * 1.3.2.9000 2020-07-25 [1]
## survival 3.2-3 2020-06-13 [2]
## tensor 1.5 2012-05-05 [1]
## testthat 2.99.0.9000 2020-07-28 [1]
## tibble * 3.0.3.9000 2020-07-21 [1]
## tidyr * 1.1.0.9000 2020-07-23 [1]
## tidyselect 1.1.0.9000 2020-07-11 [1]
## tidyverse * 1.3.0.9000 2020-06-01 [1]
## usethis 1.6.1.9001 2020-07-29 [1]
## utf8 1.1.4 2018-05-24 [1]
## uwot 0.1.8.9000 2020-07-19 [1]
## vctrs 0.3.2.9000 2020-07-23 [1]
## viridisLite 0.3.0 2018-02-01 [1]
## wesanderson 0.3.6.9000 2020-06-05 [1]
## withr 2.2.0 2020-04-20 [1]
## xfun 0.16 2020-07-24 [1]
## xml2 1.3.2 2020-04-23 [1]
## xtable 1.8-4 2019-04-21 [1]
## yaml 2.2.1 2020-02-01 [1]
## yarrr 0.1.6 2020-07-23 [1]
## zoo 1.8-8 2020-05-02 [1]
## source
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidymodels/broom@762e3ad)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Bioconductor
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/dbplyr@a6ed629)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (r-lib/devtools@8d14704)
## CRAN (R 4.0.0)
## Github (tidyverse/dplyr@48aead4)
## Github (r-lib/ellipsis@57a5071)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/forcats@ab81d1b)
## Github (r-lib/fs@9e143f9)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (tidyverse/ggplot2@b4bc293)
## Github (slowkow/ggrepel@4d0ef50)
## CRAN (R 4.0.0)
## Github (nanxstats/ggsci@589fe17)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/glue@205f18b)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (tidyverse/lubridate@de2ee09)
## Github (tidyverse/magrittr@0d14075)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/modelr@16168e0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## Github (thomasp85/patchwork@82a5e03)
## CRAN (R 4.0.0)
## Github (r-lib/pillar@8aef8f2)
## Github (r-lib/pkgbuild@3a87bd9)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/purrr@74d5d67)
## Github (r-lib/R6@1415d11)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/readr@2ab51b2)
## Github (tidyverse/readxl@3815961)
## Github (r-lib/remotes@d7fe461)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (r-lib/rlang@1fb41d7)
## Github (rstudio/rmarkdown@204aa41)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (rstudio/rstudioapi@ed5dd25)
## CRAN (R 4.0.0)
## Github (jkrijthe/Rtsne@14b195f)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (r-lib/scales@9ff4757)
## CRAN (R 4.0.0)
## Github (r-lib/sessioninfo@791705b)
## Github (satijalab/seurat@ad0008e)
## CRAN (R 4.0.0)
## Github (rstudio/shiny@766b910)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/stringr@f70c4ba)
## Github (r-lib/styler@16d815e)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## Github (r-lib/testthat@0af11cd)
## Github (tidyverse/tibble@b4eec19)
## Github (tidyverse/tidyr@3f49600)
## Github (tidyverse/tidyselect@69fdc96)
## Github (hadley/tidyverse@8a0bb99)
## Github (r-lib/usethis@dbe57c0)
## CRAN (R 4.0.0)
## Github (jlmelville/uwot@13a198f)
## Github (r-lib/vctrs@df8a659)
## CRAN (R 4.0.0)
## Github (karthik/wesanderson@d90700a)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (ndphillips/yarrr@e2e4488)
## CRAN (R 4.0.0)
##
## [1] /usr/local/lib/R/4.0/site-library
## [2] /usr/local/Cellar/r/4.0.2_1/lib/R/library